[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Issue: TAILP-NIL (version 3), or NTHCDR-P?
- To: vanroggen%aitg.DEC@decwrl.dec.com
- Subject: Issue: TAILP-NIL (version 3), or NTHCDR-P?
- From: Jon L White <jonl@lucid.com>
- Date: Thu, 27 Oct 88 18:30:51 PDT
- Cc: cl-cleanup@sail.stanford.edu
- In-reply-to: vanroggen%aitg.DEC@decwrl.dec.com's message of Tue, 19 Apr 88 19:33:14 PDT <8804200233.AA01883@decwrl.dec.com>
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 --