Frage

Ich brauche Hilfe beim Verständnis des Materials in Abschnitt 4.1.6 von SICP zu internen Definitionen.

Ich verstehe das Problem, das auf gegenseitig rekursive Funktionen aufgeworfen wird. Aber ich verstehe nicht, wie es gelöst wird, indem der folgende Lambda -Ausdruck transformiert wird

(lambda <vars >
  (define u <e1 >)
  (define v <e2 >)
  <e3 >)

hinein:

(lambda <vars >
  (let ((u ’*unassigned*)
        (v ’*unassigned*))
    (set! u <e1 >)
    (set! v <e2 >)
    <e3 >))

Kann mir hier jemand helfen? Vielen Dank.

War es hilfreich?

Lösung

Wenn <e1> Versuche sich auf v In der ersten Form scheitert es - v ist nicht definiert (nicht noch, aber die nicht Teil ist der wichtige). Aber in der zweiten Form, v ist definiert Bis Sie zukommen <e1> (wenn auch noch nicht zugewiesen -- aber das ist in Ordnung!-).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top