Ich habe elisp Code wie folgt:Elisp Variable binden an sich
(setq a nil)
(defun testa (a) (add-to-list a "ABCD"))
(testa 'a)
Was ich will, ist a
Liste ("ABCD")
aber seit dem Argument Name der Funktion testa
ist die gleiche wie variable a
, die lokale Bindung zu machen von a
in der Funktion ist selbst, die den Wert außerhalb der Funktion nicht bindet.
Meine Frage ist: Ist es das Merkmal von elisp, dass ich nicht umgehen kann, wenn ich die Variable nicht außerhalb umbenenne oder gibt es eine saubere Lösung?
Dies beantwortet die Frage nicht - es erklärt nicht das Verhalten, über das sich das OP Gedanken macht. Bitte fügen Sie einige relevante Teile der Erklärung bei, auf die Sie verlinken. Ansonsten handelt es sich im Wesentlichen um eine reine Link-Antwort, und es besteht die Gefahr, dass sie gelöscht wird. – Drew
Danke. Vielleicht muss ich die Funktion mit lexikalischer Bindung definieren, die funktioniert. – hw9527