When a symbol is evaluated, it is treated as a variable. The result is the variable’s value, if it has one. If the symbol has no value as a variable, the Lisp interpreter signals an error. For more information on the use of variables, see Variables.
In the following example, we set the value of a symbol with setq
. Then we evaluate the symbol, and get back the value that setq
stored.
(setq a 123) ⇒ 123
(eval 'a) ⇒ 123
a ⇒ 123
The symbols nil
and t
are treated specially, so that the value of nil
is always nil
, and the value of t
is always t
; you cannot set or bind them to any other values. Thus, these two symbols act like self-evaluating forms, even though eval
treats them like any other symbol. A symbol whose name starts with ‘:’ also self-evaluates in the same way; likewise, its value ordinarily cannot be changed. See Constant Variables.
Copyright © 1990-1996, 1998-2019 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Forms.html