2009-04-16 22 views

Respuesta

118

es posible que desee boundp: devuelve t si variable (un símbolo) no es nulo; más precisamente, si su enlace actual no es nulo. De lo contrario, devuelve nil.

(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

a veces también puede ser útil usar INTERN-SOFT para verificar si existe un símbolo. –

39

Además de dfa's answer es posible que también desee para ver si es obligado en función usando fboundp:

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

Si desea comprobar un valor de variable dentro de Emacs (no sé si esto aplica, ¿desde que escribió "en Emacs Lisp"?):

M-: inicia Eval en el mini buffer. Escriba el nombre de la variable y presione regresar. El mini-buffer muestra el valor de la variable.

Si la variable no está definida, se obtiene un error de depurador.

+0

Equivalentemente, 'M-: (boundp 'the-variable-name) RET' comprobará sin la necesidad de desencadenar un error. –

+0

Estoy bastante seguro de que la pregunta es acerca de los scripts elisp, no la interfaz de usuario interactiva de Emacs. – binki

Cuestiones relacionadas