Entries from 2008-02-04 to 1 day

Re:我々全員の知的生産性を10桁上げる方法

ダシにして申し訳ないが、典型的なLisperからみたかつてのid:higeponや、現在のid:amachangの「知力」は高いとはとても言えない。例えば遅延評価のことは、SICPを読めばちゃんと書いてある。そしてこれはまともなComputer Scienceがある大学なら、一番最初に…

β変換 その2 - Scheme VM を書く

ローカル変数参照を値で置き換えると let が不要になる場合があります。 (let ([a 0]) a) ;==>ローカル変数参照置き換え (let ([a 0]) 0) ;===>letの削除 0 ;; こうしたい! let の削除 基本的には let で使われている変数の、参照カウントが 0 であれば let…

β変換 その3 - Scheme VM を書く

現在の実装では中間表現の時点でローカル変数の参照位置を決定している。例えば (let ([a 0]) (let ([b 1] [c 2]) a ; a は (1, 0) の位置 b ; b は (0, 0) の位置 c ; c は (0, 1) の位置 )) (n, m) は n は現在の環境から見て何番目の環境か?(環境=let…