No Emacs Lisp, como faço para verificar se uma variável está definida?
90
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 :
fonte
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çaEval
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.
fonte
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.
fonte