nil и t
В Emacs Lisp, символ nil имеет три отдельных значения: это символ с именем ‘nil’; это логическое значение истинности false; и это пустой список — список из нуля элементов. При использовании в качестве переменной, nil всегда имеет значение nil.
Что касается читателя Lisp, то ‘()’ и ‘nil’ идентичны: они обозначают один и тот же объект, символ nil. Разные способы записи символа предназначены исключительно для читателей-людей. После того, как читатель Lisp прочитал ‘()’ или ‘nil’, нет возможности определить, какой способ записи фактически использовал программист.
В этом руководстве мы пишем (), когда хотим подчеркнуть, что это означает пустой список, и пишем nil, когда хотим подчеркнуть, что это означает значение истинности false. Это хорошая соглашение для использования и в программах Lisp.
(cons 'foo ()) ; Emphasize the empty list (setq foo-flag nil) ; Emphasize the truth value false
В контекстах, где ожидается значение истинности, любое значение, отличное от nil, считается true. Однако, t является предпочтительным способом представления значения истинности true. Когда вам нужно выбрать значение, представляющее true, и нет других оснований для выбора, используйте t. Символ t всегда имеет значение t.
В Emacs Lisp, nil и t являются специальными символами, которые всегда вычисляются сами по себе. Это делается для того, чтобы вам не нужно было их цитировать, чтобы использовать их как константы в программе. Попытка изменить их значения приводит к ошибке setting-constant. См. Постоянные переменные.
- Функция: booleanp объект
Возвращает не-
nil, если объект является одним из двух канонических значений булевой переменной:tилиnil.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/nil-and-t.html