Domanda

Ho bisogno di aiuto nella comprensione del materiale nella sezione di SICP 4.1.6 su definizioni interne.

ho capito il problema sollevato quando vengono definite le funzioni ricorsive reciprocamente. Ma io non capisco come si è risolto trasformando la seguente espressione lambda

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

in:

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

Qualcuno mi può aiutare qui? Grazie.

È stato utile?

Soluzione

Se cerca <e1> riferimento alla v nella prima forma, non riesce - v non è definita (non ancora , ma il non parte è quello importante). Ma nella seconda forma, v è definito per il momento si arriva a <e1> (anche se non ancora assegnato - ma va bene -!) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top