【发布时间】:2013-02-21 22:14:17
【问题描述】:
(define make (lambda (x) (lambda (y) (cons x (list y)))))
(let ((x 7)
(p (make 4)))
(cons x (p 0)))
我是 Scheme 和函数式程序的新手,所以我在浏览程序时有点笨拙,但我知道如果我使用深度绑定,这个程序将返回 (7 4 0)。说得通。这个程序使用浅绑定会做什么?我知道这听起来可能很愚蠢,但是与 cons 一致的 p 是重新定义吗?所以在那种情况下,我们会返回 (7 0)?
基本上,我理解 deep v. shallow binding 的概念,但我觉得在看 Scheme 时我把它搞混了,因为我对它并不熟悉。
【问题讨论】: