Life Goes On

まあまあだけど楽しんでる方です

はじめてのGrass

id:nishiohirokazu さんの 草植えてみましたwWWwwww 経由で Grass を知って、ちょっと触ってみました。
(はじめての C がはじめてのアレなら、はじめての Grass は「吸って」みましたと言うべき?)
インタプリタちょっと草植えときますね型言語 Grass からげっと。
初めて動かしたコード

wvWWwwww

wが出力されます。↓のつもりで書いてます。

id x = x
main = out w

いくつか文字を出力してみよう。

wvWWWwwwwWWWWwWWWWWwWWWWWwwwWWWWWWwwwWWWWWWWwww

↓だと思うんだけど、vを省略しても同じように出力されるな。どう解釈されているんだろう?

id a = a
main = do
    x = succ w
    y = succ x
    z = succ y
    out x
    out y
    out z

wv が id なら wwv は?

wwvWWWwwwwWWwwwwwWwwWWWWWw

これで x が出力されるということは hoge w x = x だから、hoge は常に最後の引数を返す const もどきだ。(当たり前かそうか、引数をスタックに載せて、そのまま何もしないから、id になるんだ。やっと分かった)
さて、いつになったら Hello, World! が出せるんだろう…。