- 209 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:25:42 ]
- >>202
(let ((a 0)) (define hoge (lambda (x) (+ a x)))) (hoge 10) だと、3行目ではシンボルhogeに値が束縛されてないと思うぞ。 (define hoge #f) (let ((a 0)) ; frame1 (set! hoge (lambda (x) (+ a x)))) ; frame2 (hoge 10) たぶん↑のようにしたいんだと思うけど、 この場合だと、letを評価した時点でframe1が作られ、top <- frame1 になり、 lambdaで作られた手続きは top <- frame1 の frame1 部分を参照する。 で、(hoge 10)が評価されたときに frame2 が作られて top <- frame1 <- frame2 になる。 あとはaを検索するときは上から順に。という感じかな。 top <- frame2 のようなリスト(か何か)も必要になるけど、 これは継続絡みの話だと思う。
|

|