ちょっと草植えときますね型言語 GrassをAWKで実装してみるの巻。 Grass は λ-calculus(ラムダ計算)をベースにした「関数型言語」で、「関数定義」「関数適用」のみの組合せでプログラムを表現します。使う文字は W,w,v の3種類。(その他の文字は無視) 今回、こういう言語の実装には正直向いていなさそうなAWKで実装してみました。 AWKの上でYコンビネータが動いているのは自分でもあまり想像したくないのですが・・・grass.elのところにあるサンプルのうち、入力を伴うもの以外はとりあえず全部通るようです。 言語仕様としては、本家ドキュメントのほか、ここが参考になりました。 せめて配列がAWKでファーストクラスなオブジェクトだったら楽なんですが... 仕方がないので、文字列でなんでも表現しようではないか 関数は "/i[j]a.b;c.d;e.f;...;y.z;" のよ