「コンパイラ・スクリプトエンジン」相談室9at TECH
「コンパイラ・スクリプトエンジン」相談室9 - 暇つぶし2ch209:デフォルトの名無しさん
06/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 のようなリスト(か何か)も必要になるけど、
これは継続絡みの話だと思う。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch