西尾泰和さんの最もタメになる「初心者用言語」は Unlambda!を見て、unlambda の初心者になるためにインタプリタを Ruby 1.9 で書いてみました。 d (delay) と入出力がなければとてもシンプル。各命令を定義通りに Proc に変換するだけ。いやあ、-> 記法はキモイですね。いつか慣れるのかな。 require "continuation" def unlambda_subset(s) s = s.split(//) t = ->() do case s.shift when ?`; t[][t[]] when ?s; ->(f){ ->(g){ ->(x){ f[x][g[x]] } } } when ?k; ->(x){ ->(y){ x } } when ?i; ->(x){ x } when ?c; ->(f){ callcc{|c| f[c] } } wh