elisp: List-related Predicates

 
 5.2 Predicates on Lists
 =======================
 
 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.)
 
  -- Function: 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.
 
  -- Function: 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))
 
  -- Function: listp object
      This function returns ‘t’ if OBJECT is a cons cell or ‘nil’.
      Otherwise, it returns ‘nil’.
 
           (listp '(1))
                ⇒ t
           (listp '())
                ⇒ t
 
  -- Function: 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))
 
  -- Function: 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 SeeCombining
      Conditions).
 
           (null '(1))
                ⇒ nil
           (null '())
                ⇒ t