Як в Emacs Lisp перевірити, чи визначена змінна?
Відповіді:
Вам може знадобитися boundp: повертає t, якщо змінна (символ) не порожня; точніше, якщо його поточна прив'язка не є недійсною. Інакше це повертає нуль.
(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
Якщо ви хочете перевірити значення змінної всередині emacs (я не знаю, чи це стосується, оскільки ви написали "у Emacs Lisp"?):
M-:
починається Eval
в міні-буфері. Напишіть в назві змінної та натисніть return. Міні-буфер показує значення змінної.
Якщо змінна не визначена, ви отримуєте помилку налагоджувача.
M-: (boundp 'the-variable-name) RET
перевірятиме без необхідності викликати помилку.