representations of Lisp objects into actual Lisp objects, and vice
versa. @xref{Printed Representation}, for more details. You, the
person reading this manual, are thought of as ``the programmer'' and are
-addressed as ``you''. ``The user'' is the person who uses Lisp
+addressed as ``you.'' ``The user'' is the person who uses Lisp
programs, including those you write.
-@cindex fonts
+@cindex fonts in this manual
Examples of Lisp code are formatted like this: @code{(list 1 2 3)}.
Names that represent metasyntactic variables, or arguments to a function
being described, are formatted like this: @var{first-number}.
there is no way to determine which representation was actually written
by the programmer.
- In this manual, we use @code{()} when we wish to emphasize that it
-means the empty list, and we use @code{nil} when we wish to emphasize
+ In this manual, we write @code{()} when we wish to emphasize that it
+means the empty list, and we write @code{nil} when we wish to emphasize
that it means the truth value @var{false}. That is a good convention to use
in Lisp programs also.
@example
(cons 'foo ()) ; @r{Emphasize the empty list}
-(not nil) ; @r{Emphasize the truth value @var{false}}
+(setq foo-flag nil) ; @r{Emphasize the truth value @var{false}}
@end example
@cindex @code{t}, uses of
values results in a @code{setting-constant} error. @xref{Constant
Variables}.
+@defun booleanp object
+Return non-nil iff @var{object} is one of the two canonical boolean
+values: @code{t} or @code{nil}.
+@end defun
+
@node Evaluation Notation
@subsection Evaluation Notation
@cindex evaluation notation
@end example
@noindent
-You can read this as ``@code{(car '(1 2))} evaluates to 1''.
+You can read this as ``@code{(car '(1 2))} evaluates to 1.''
When a form is a macro call, it expands into a new form for Lisp to
evaluate. We show the result of the expansion with