Next: Accessing Elements of Lists, Previous: Lists and Cons Cells, Up: Lists [Contents][Index]
The following predicates test whether a Lisp object is an atom,
whether it is a cons cell or is a list, or whether it is the
distinguished object nil
. (Many of these predicates can be
defined in terms of the others, but they are used so often that it is
worth having them.)
consp
object ¶This function returns t
if object is a cons cell, nil
otherwise. nil
is not a cons cell, although it is a list.
atom
object ¶This function returns t
if object is an atom, nil
otherwise. All objects except cons cells are atoms. The symbol
nil
is an atom and is also a list; it is the only Lisp object
that is both.
(atom object) ≡ (not (consp object))
listp
object ¶This function returns t
if object is a cons cell or
nil
. Otherwise, it returns nil
.
(listp '(1)) ⇒ t
(listp '()) ⇒ t
nlistp
object ¶This function is the opposite of listp
: it returns t
if
object is not a list. Otherwise, it returns nil
.
(listp object) ≡ (not (nlistp object))
null
object ¶This function returns t
if object is nil
, and
returns nil
otherwise. This function is identical to not
,
but as a matter of clarity we use null
when object is
considered a list and not
when it is considered a truth value
(see not
in Constructs for Combining Conditions).
(null '(1)) ⇒ nil
(null '()) ⇒ t
proper-list-p
object ¶This function returns the length of object if it is a proper
list, nil
otherwise (see Lists and Cons Cells). In addition to
satisfying listp
, a proper list is neither circular nor dotted.
(proper-list-p '(a b c)) ⇒ 3
(proper-list-p '(a b . c)) ⇒ nil
Next: Accessing Elements of Lists, Previous: Lists and Cons Cells, Up: Lists [Contents][Index]