私は、Scheme で引用現象がどのように機能するかを理解しようとしています。特に、引用された用語の自由変数がいつバインドされるかを理解したいと思います。
たとえば、私が書くとき
(define q 'a)
(define a 42)
(eval q)
42 を返します。したがって、バインド時間は実行時であると推測します。しかし、この場合、なぜこのコードは失敗するのでしょうか
(let ((q 'a))
(let ((a 42))
(eval q)
)
)
そして戻る
unbound variable: a
引用された用語の結合時間モデルとは何か(たとえば、MetaOCaml に匹敵しますか?(私はそうは思いません))、define と let の違いを説明してもらえますか?