`nil' and `t'
-------------
In Lisp, the symbol `nil' has three separate meanings: it is a
symbol with the name `nil'; it is the logical truth value FALSE; and it
is the empty list--the list of zero elements. When used as a variable,
`nil' always has the value `nil'.
As far as the Lisp reader is concerned, `()' and `nil' are
identical: they stand for the same object, the symbol `nil'. The
different ways of writing the symbol are intended entirely for human
readers. After the Lisp reader has read either `()' or `nil', there is
no way to determine which representation was actually written by the
programmer.
In this manual, we use `()' when we wish to emphasize that it means
the empty list, and we use `nil' when we wish to emphasize that it
means the truth value FALSE. That is a good convention to use in Lisp
programs also.
(cons 'foo ()) ; Emphasize the empty list
(not nil) ; Emphasize the truth value FALSE
In contexts where a truth value is expected, any non-`nil' value is
considered to be TRUE. However, `t' is the preferred way to represent
the truth value TRUE. When you need to choose a value which represents
TRUE, and there is no other basis for choosing, use `t'. The symbol
`t' always has the value `t'.
In Emacs Lisp, `nil' and `t' are special symbols that always
evaluate to themselves. This is so that you do not need to quote them
to use them as constants in a program. An attempt to change their
values results in a `setting-constant' error. The same is true of any
symbol whose name starts with a colon (`:'). Note:Constant
Variables.