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 SeeVariables.
 
    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.