In Emacs Lisp, certain symbols normally evaluate to themselves. These
include nil
and t
, as well as any symbol whose name starts
with `:'. These symbols cannot be rebound, nor can their values be
changed. Any attempt to set or bind nil
or t
signals a
setting-constant
error. The same is true for a symbol whose name
starts with `:', except that you are allowed to set such a symbol to
itself.
nil == 'nil => nil (setq nil 500) error--> Attempt to set constant symbol: nil
nil
, you are allowed to set and bind symbols
whose names start with `:' as you wish. This is to make it
possible to run old Lisp programs which do that.
Go to the first, previous, next, last section, table of contents.