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

A simple question

    Date: 23 Apr 1987 13:42:18 EST (Thu)
    From: Russ Smith <smith@nrl-aic.ARPA>

    Page 73 contains a definition for NULL that may
    or may not say that NULL returns strictly T or NIL (see also page 82).

    What's the poop?

Page 73 says several things.  It says NULL returns true if the argument
is ().  To me at least, this implies NULL is used for flow/predicate and
not for value.  It goes on to say that NULL is the same as NOT.  NOT
(page 82) explicitly says NOT returns T or NIL.  It also says NULL is
the same as NOT.  If you believe in transitive closure, one would
conclude that (null (null something)) returns strictly T or NIL.  Poor
programs may be broken by this; better programs never use (null (null
...)) but instead express the better intent (not (null ...)).

Personally, I would consider (null (null ...)) to be "an error" and that
the compiler for the Sun should be able to get away with returning the
inner argument.  Things get worse when you separate nil and ().