質問

内部定義に関するSICPのセクション4.1.6の資料を理解するための助けが必要です。

相互に再帰的な機能が定義されている場合、問題が発生した問題を理解しています。しかし、私はそれが次のラムダの表現を変換することによってどのように解決されるか理解していません

(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 定義されていません(そうではありません まだ, 、 しかし いいえ 一部は重要なものです)。しかし、2番目の形式では、 v 定義されています あなたが到達するまでに <e1> (まだそうではありませんが 割り当て - でも大丈夫です! - )。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top