1

我需要一些帮助来理解 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 >))

有人可以帮我吗?谢谢。

4

1 回答 1

3

如果<e1>尝试以v第一种形式引用,则失败 -v未定义(尚未定义,但not部分是重要的部分)。但在第二种形式中,v 您到达的时间定义<e1>(虽然尚未分配- 但没关系!-)。

于 2009-06-09T16:19:03.643 回答