[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
When a symbol is evaluated, it is treated as a variable. The result is the variable's value, if it has one. If it has none (if its value cell is void), an error is signaled. For more information on the use of variables, see 11. 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 section 11.2 Variables that Never Change.