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

Issue: TAILP-NIL (version 3), or NTHCDR-P?

The difference between your Definition "A" and Definition "B" isn't just 
"in their treatment of the atomic case", but also that the loop termination
criteron is ENDP in one and ATOM in the other.  There is still something 
desirable about an ENDP termination test as long as the first argument to 
TAILP is described as a "sublist" [i.e. some kind of LIST].  For example, 
it is not acceptable to consider 35 as a list.  On the other hand, maybe 
you really want to suggest that TAILP be changed into the functionality 
implied by the name NTHCDR-P?  In  short, which of the following two
options is preferable?
  1.   (tailp 35 l)        ==> an error
  2.   (tailp 35 l)        ==> either true, or false.

Under Rationale, I would add that the current proposal makes the 
documentation of TAILP more consistent with the type definition of LIST, 
which isn't restricted to CONS cells.

Under Current Practice, Lucid does not implement TAILP-NIL:T, as previously
explained in my note:

    Date: Mon, 19 Sep 88 20:34:10 PDT
    From: Jon L White <jonl>
    To: vanroggen%aitg.DEC@decwrl.dec.com
    Cc: cl-cleanup@sail.stanford.edu
    In-Reply-To: vanroggen%aitg.DEC@decwrl.dec.com's message of Tue, 13 Sep 88 12:37:02 PDT <8809131937.AA14339@decwrl.dec.com>
    Subject: Issue: TAILP-NIL (version 1)

    TAILP-NIL:NIL is what Lucid Common Lisp supports, albeit for the 
    "wrong" reason.  Since this issue has been around for nearly three
    years (GLS's "Clarifications"), and since there has been no public 
    complaints about the many implementations that do it this way, then
    codifying this seems right.

    I wouldn't mind a line in your proposal that requires TAILP to signal
    an error if the 'sublis' argument is any non-null atom.

    -- JonL --

For Lucid, the choice between TAILP-NIL:NIL and TAILP-NIL:T is quite
arbitrary [i.e., don't read anything into "supports" above].

-- JonL --