Ich bin ein Scheme-Interpreter zu schreiben, und ich bin mit einer gültigen let Anweisung wie konfrontiert:Lisp Auswertung von lassen Aussagen
;; should print 7
(let ((a 4) (b 3))
(let ((a (* a a))
(b (* b b)))
(+ a b)
(- a b)))
Mein Dolmetscher implementiert nur eine rein funktionale Teilmenge von Scheme, so wird es keine sein Nebenwirkungen wie eingestellt!. Warum würden Sie in einer rein funktionalen Sprache mehrere Ausdrücke innerhalb einer let-Anweisung wie oben zulassen?
Und schriftlich meinen Dolmetscher, gibt es irgendeinen Grund, dass ich alles außer dem letzten Ausdruck im Lassen bewerten sollte? Es scheint, dass sie das Ergebnis der letzten bewerteten Aussage nie beeinflussen könnten.