型なしλ計算の実装

ISBN:0262162091 の 6章「Nameless Representation of Terms」を読んだ。
この章には、λ式の変数を自然数に置き換えても読みづらいけど
意味は変わらないよねということが書いてあった。

具体的には、

λx.λy. x (y x)

というλ式は、

λ.λ. 1 (0 1)

という式に書き換えられるという話。

ちなみに、De Brujinって人のアイディアなので下の表現を de Brujin termsと言うらしい。
そのまんまの名前ですねorz

この表現式でλ式を扱うとプログラムで扱い易くなるので良い。(らしい)

で、次の7章がMLで型なしλ計算を実装しようという話。
解説はMLでされてるのだが、なんとなくC#(しかも、2.0)で書いてみた。
しかし、Substitutionを実装したあたりで眠くなり中断。(つづく