There is an important aspect to the truth test in an
expression. So far, we have spoken of `true' and `false' as values of
predicates as if they were new kinds of Emacs Lisp objects. In fact,
`false' is just our old friend
nil. Anything else—anything
at all—is `true'.
The expression that tests for truth is interpreted as true
if the result of evaluating it is a value that is not
other words, the result of the test is considered true if the value
returned is a number such as 47, a string such as
"hello", or a
symbol (other than
nil) such as
flowers, or a list (so
long as it is not empty), or even a buffer!