Erstens: Ja, ich habe mir einen sehr langen Blick auf Norvigs lispy
gemacht. Zweitens: Ich habe einen Teil seines Codes wiederverwendet.
Weiter zu meinem Code und meiner Frage. Ich schreibe einen wirklich nicht-idiomatischen Lisp-Interpreter in Python, und ich bin neugierig, wie ich geschachtelte Funktionsdefinitionen schreiben würde (z. B. (define square (lambda (x) (* x x)))
dann (define SoS (lambda (x y) (+ (square x) (square y))))
) und das funktioniert derzeit nicht. Ich bin ein bisschen fest. Was kann ich tun?
BEARBEITEN : Irgendwelche Tipps zu meinem Programmierstil oder Verbesserungen, die ich machen könnte, wären sehr willkommen. Danke!
%Vor% Sehen Sie sich die Ausgabe von pre_in
an:
Das sollte '(square(x) + square(y))'
sein.
(Ihr Beispielcode enthält übrigens einen Syntaxfehler. SoS
sollte als (lambda (x y) (+ (square x) (square y)))
definiert sein.)
in read_from haben Sie die folgende Zeile zweimal:
%Vor%Einer von ihnen sollte wahrscheinlich sein:
%Vor%Einige Vorschläge / Tipps:
reduce
-Funktion Ссылка und operator
package Ссылка
Tags und Links python scheme lisp implementation interpreter