题
我需要在SICP对内部定义部分4.1.6理解材料的一些帮助。
我明白当被定义相互递归函数提出的问题。但我不理解通过变换以下lambda表达式它是如何解决
(lambda <vars >
(define u <e1 >)
(define v <e2 >)
<e3 >)
成:
(lambda <vars >
(let ((u ’*unassigned*)
(v ’*unassigned*))
(set! u <e1 >)
(set! v <e2 >)
<e3 >))
有人可以帮助我在这里?谢谢。
解决方案
如果<e1>
尝试参照在第一形式v
,它失败 - 没有定义v
(未尚未,但在不强>部分是重要的)。但在第二个形式,v
是 定义的由你来<e1>
时间(虽然还没有的分配的 - 但没关系 - !)
不隶属于 StackOverflow