J'ai le code elisp comme ceci:Elisp bind variable se
(setq a nil)
(defun testa (a) (add-to-list a "ABCD"))
(testa 'a)
Ce que je veux est de faire a
liste ("ABCD")
mais étant donné que le nom de l'argument de la fonction testa
est la même que la variable a
, la liaison locale de a
dans la fonction est elle-même, ce qui ne lie pas la valeur en dehors de la fonction.
Ma question est la suivante: Est-ce la caractéristique d'elisp que je ne peux pas contourner si je ne renomme pas la variable à l'extérieur ou y a-t-il une solution soignée?
Cela ne répond pas à la question - il n'explique pas le comportement que l'OP s'interroge. Veuillez incorporer certaines parties pertinentes de l'explication que vous liez à. Sinon, il s'agit essentiellement d'une réponse à lien uniquement et risque d'être supprimé. – Drew
Merci. Peut-être que j'ai besoin de définir la fonction en utilisant la liaison lexicale qui fonctionne. – hw9527