Respostas:
você pode querer boundp: retorna t se a variável (um símbolo) não for vazia; mais precisamente, se sua ligação atual não for nula. Caso contrário, retorna nulo.
(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
Além da resposta do dfa, você também pode querer ver se ele está vinculado a uma função usando fboundp :
(defun baz ()
)
=> baz
(boundp 'baz)
=> nil
(fboundp 'baz)
=> t
Se você quiser verificar o valor de uma variável de dentro do emacs (não sei se isso se aplica, já que você escreveu "no Emacs Lisp"?):
M-:
começa Eval
no mini buffer. Escreva o nome da variável e pressione Enter. O mini-buffer mostra o valor da variável.
Se a variável não for definida, você obterá um erro do depurador.
M-: (boundp 'the-variable-name) RET
verificará sem a necessidade de acionar um erro.
Lembre-se de que as variáveis com valor nil são consideradas definidas.
(progn (setq filename3 nil) (boundp 'filename3)) ;; returns t
(progn (setq filename3 nil) (boundp 'filename5)) ;; returns nil