In einer anonymen Funktion wieUnquote-Symbol in Lambda-Ausdruck?
(lambda() x)
wie kann ich das Symbol x
mit seinem Wert im aktuellen Bereich ersetzen?
Das einzige, was ich denken kann, ist
(eval `(lambda() ,x))
aber ich frage mich, ob es einen anderen Weg.
Dies wird glücklich rülpsen, wenn 'x' einen Wert wie' (1 2) 'hat. – Stefan
@Stefan: Ich habe versucht, so nah wie möglich am OP zu bleiben. Und das ergibt '(lambda() (1 2))' - kein Aufstoßen. Wenn Sie meinen, dass * diese * Funktion beim Aufruf auflöst, ist das ein anderes Problem (und gilt auch für das OP). Wenn 'x' wahrscheinlich etwas ist, das nicht fehlerfrei ausgewertet werden kann, ist' 'x' normalerweise angemessen. – Drew