10.2.2 Формы символов

Когда символ оценивается, он рассматривается как переменная. Результатом является значение этой переменной, если оно есть. Если у символа нет значения в качестве переменной, интерпретатор Lisp сообщает об ошибке. Для получения больше информации об использовании переменных см. Переменные.

В следующем примере мы устанавливаем значение символа с помощью setq. Затем мы оцениваем символ и получаем сохраненное setq значение.

(setq a 123)
     ⇒ 123
(eval 'a)
     ⇒ 123
a
     ⇒ 123

Символы nil и t обрабатываются особым образом, так что значение nil всегда равно nil, а значение t всегда равно t; вы не можете установить или привязать их к каким-либо другим значениям. Таким образом, эти два символа ведут себя как самооценивающиеся формы, даже если eval обращается с ними как с любым другим символом. Символ, имя которого начинается с «:», также самооценивается таким же образом; аналогично, его значение обычно нельзя изменить. См. Переменные, которые никогда не меняются.