Implementieren von Lisp in Python

8

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%     
tekknolagi 28.06.2011, 07:03
quelle

2 Antworten

2

Sehen Sie sich die Ausgabe von pre_in an:

%Vor%

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.)

    
Matthias Benkard 28.06.2011, 09:55
quelle
0

in read_from haben Sie die folgende Zeile zweimal:

%Vor%

Einer von ihnen sollte wahrscheinlich sein:

%Vor%

Einige Vorschläge / Tipps:

Udi 28.06.2011 09:23
quelle