elisp: Symbol Forms
9.2.2 Symbol Forms
------------------
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.
Constant Variables.