An explanation of `nil'
-----------------------
Before illustrating a test for truth, we need an explanation of
`nil'.
In Emacs Lisp, the symbol `nil' has two meanings. First, it means
the empty list. Second, it means false and is the value returned when a
true-or-false-test tests false. `nil' can be written as an empty list,
`()', or as `nil'. As far as the Lisp interpreter is concerned, `()'
and `nil' are the same. Humans, however, tend to use `nil' for false
and `()' for the empty list.
In Emacs Lisp, any value that is not `nil'--is not the empty
list--is considered true. This means that if an evaluation returns
something that is not an empty list, an `if' expression will test true.
For example, if a number is put in the slot for the test, it will be
evaluated and will return itself, since that is what numbers do when
evaluated. In this conditional, the `if' expression will test true.
The expression tests false only when `nil', an empty list, is returned
by evaluating the expression.
You can see this by evaluating the two expressions in the following
examples.
In the first example, the number 4 is evaluated as the test in the
`if' expression and returns itself; consequently, the then-part of the
expression is evaluated and returned: `true' appears in the echo area.
In the second example, the `nil' indicates false; consequently, the
else-part of the expression is evaluated and returned: `false' appears
in the echo area.
(if 4
'true
'false)
(if nil
'true
'false)
Incidentally, if some other useful value is not available for a test
that returns true, then the Lisp interpreter will return the symbol `t'
for true. For example, the expression `(> 5 4)' returns `t' when
evaluated, as you can see by evaluating it in the usual way:
(> 5 4)
On the other hand, this function returns `nil' if the test is false.
(> 4 5)
automatically generated byinfo2wwwversion 1.2.2.9