Когда символ оценивается, он рассматривается как переменная. Результатом является значение этой переменной, если оно есть. Если у символа нет значения в качестве переменной, интерпретатор Lisp сообщает об ошибке. Для получения больше информации об использовании переменных см. Переменные.
В следующем примере мы устанавливаем значение символа с помощью
setq. Затем мы оцениваем символ и получаем сохраненное
setq значение.
(setq a 123)
⇒ 123
(eval 'a)
⇒ 123
a
⇒ 123
Символы nil и t обрабатываются особым образом,
так что значение nil всегда равно nil, а значение
t всегда равно t; вы не можете установить или
привязать их к каким-либо другим значениям. Таким образом, эти два символа
ведут себя как самооценивающиеся формы, даже если eval
обращается с ними как с любым другим символом. Символ, имя которого начинается
с «:», также самооценивается таким же образом; аналогично, его значение
обычно нельзя изменить. См. Переменные,
которые никогда не меняются.