2009-04-16 10 views

Répondre

118

Vous voudrez peut-être boundp: renvoie t si variable (un symbole) n'est pas vide; plus précisément, si sa liaison actuelle n'est pas nulle. Il retourne nul autrement.

(boundp 'abracadabra)   ; Starts out void. 
    => nil 

    (let ((abracadabra 5))   ; Locally bind it. 
    (boundp 'abracadabra)) 
    => t 

    (boundp 'abracadabra)   ; Still globally void. 
    => nil 

    (setq abracadabra 5)   ; Make it globally nonvoid. 
    => 5 

    (boundp 'abracadabra) 
    => t 
+11

Il peut parfois être utile d'utiliser INTERN-SOFT pour vérifier si un symbole existe. –

39

En plus de dfa's answer vous pouvez également voir si elle est liée en fonction à l'aide fboundp:

(defun baz() 
) 
=> baz 
(boundp 'baz) 
=> nil 
(fboundp 'baz) 
=> t 
3

Si vous voulez vérifier une valeur variable à l'intérieur emacs (je ne sais pas si cela s'applique, puisque vous avez écrit "dans Emacs Lisp"?):

M-: commence dans le mini-tampon. Ecrire dans le nom de la variable et appuyez sur retour. Le mini-tampon montre la valeur de la variable.

Si la variable n'est pas définie, vous obtenez une erreur de débogage.

+0

De manière équivalente, 'M-: (boundp 'the-variable-name) RET' va vérifier sans avoir besoin de déclencher une erreur. –

+0

Je suis sûr que la question concerne les scripts elisp, pas l'interface utilisateur interactive d'Emacs. – binki

Questions connexes