[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (atom? '()) => #t

In article <7079@ubc-cs.UUCP> manis@cs.ubc.ca (Vincent Manis) writes:

   In article <1990Mar7.194937.1421@sun.soe.clarkson.edu>
   jk0@sun.soe.clarkson.edu (Jason Coughlin) writes:

   >Can someone explain the rationale behind treating '() as an atom?  It
   >seems to me that it should be a pair:  it's the empty *list* not the
   >empty *atom*.

   But remember, a list isn't a pair. It's zero or more pairs connected
   together via a cdr chain. In fact, a pair is an object to which the car
   and cdr procedures may be applied; it has been considered unkosher for
   many years to allow (car '()) and (cdr '()).

Only unkosher in Scheme, not in Common Lisp.  Perhaps more
crucially, you have to be able to SET-CAR! and SET-CDR! a pair.
This is something you certainly can't do to the empty list.