Wie evaluieren einige Lisp-Code mit eval in nicht null lexikalische Umgebung? Ich benötige diese Funktion für die richtige Interpolationsfunktionalität.Nicht null lexikalische Umgebung für Eval
0
A
Antwort
1
Wenn Sie Ihre Umgebung als Bindungen, wie sie in let
gefunden Modell:
((x 3) (y 2))
... dann können Sie jede Form auswerten f
mit diesen Bindungen an Ort und Stelle, etwa so:
(eval `(let ,e ,f))
Dies ist der einfachste Fall, aber Sie können Ihre Daten problemlos in diese Syntax konvertieren. Sie können auch Funktionen, Makros usw. bei Bedarf binden.
Beachten Sie, dass dynamische Bindungen besser sind, wenn Sie zur Laufzeit Werte benötigen. Sie können Hash-Tabellen usw. verwenden, aber beachten Sie, dass auch die weniger bekannten ist PROGV
Sonder Betreiber:
unter anderem progv ist nützlich, wenn Dolmetscher für Sprachen eingebettet in Lisp zu schreiben; Es bietet eine Handhabe für den Mechanismus zum Binden dynamischer Variablen.
Verwandte Themen
- 1. eval Form einer gegebenen Form in einer Null-lexikalische Umgebung bewerten soll, kann ich nicht, was ich erwarten
- 2. Was ist die lexikalische Umgebung eines Funktionsarguments?
- 3. lexikalische Bereiche für Funktionsausdrücke
- 4. Hat ein Funktionsausdruck einen eigenen Bereich/lexikalische Umgebung?
- 5. Verschlüsse in einer for-Schleife und lexikalische Umgebung
- 6. Make eval() verwenden Funktionsumgebung, anstatt globale Umgebung
- 7. Lexikalische Verschlüsse über Makrolet?
- 8. Racket mit lexikalische Verschlüsse
- 9. @PropertySource und @Autowired-Umgebung - null
- 10. Was ist die NULL-Umgebung?
- 11. Reguläre Ausdrücke Lexikalische Analyse
- 12. Eval für Sicherheitsbedenken?
- 13. Eval Funktion für Jquery
- 14. Null-Byte-Ausgabe Datei in Unix-Umgebung
- 15. Warum nicht eval() JSON?
- 16. Validierung eval() für PHP-7
- 17. Benutzerdefinierte Befehl für ‚\ {Umgebung} begin ... \ end {Umgebung}‘
- 18. Eval parsen für eine JSON
- 19. Lexikalische Dispersion Grundstück ist Seaborn
- 20. Entfernen von NULL-Objekten aus einer Umgebung
- 21. CNTK C++ Eval für FastRCNN
- 22. Wie macht eval die Rückgabe von Null anstelle von nichts?
- 23. Unterschied zwischen `eval` und` evalsyntax`
- 24. Cmder - 'eval' Befehl nicht erkannt
- 25. eval-when-compile nicht geehrt?
- 26. ignorieren Eltern/Vorfahren Umgebungen innerhalb der Funktion (lexikalische Scoping deaktivieren)
- 27. lexikalische oder Präprozessor-Ausgabedatei nicht gefunden während der Archivierung?
- 28. Python eval funktioniert nicht innerhalb einer Funktion
- 29. Ternär Bedingte Operator für Null/nicht Null
- 30. eval nicht funktioniert horzcat Matlab
Es ist nicht möglich, aber Sie sollten vielleicht Ihre Frage auf das eigentliche Problem und nicht auf Ihre Probleme hinsichtlich Ihrer gewählten Lösung ändern, da dies wie ein XY-Problem riecht. – Sylwester
Ok, danke, eigentlich musste ich nur sicher sein, dass es keinen Weg gibt, wie es geht. Eigentlich habe ich beschlossen, eine Hash-Tabelle mit Werten zu senden, anstatt auf die Umgebung zuzugreifen. – Seraph