This appeared on one of the cross-posted threads -- and since they are
most likely heavily killfiled, I though the lift this one out, and
quote it out of context:
;-)
In comp.lang.lisp Marco Antoniotti <·······@cs.nyu.edu> wrote:
> some restriction on lists (incidentally I strongly believe that the CL
> type system should be extended to include SIMPLE-LISTs and COMPLEX-LISTs
I assume you mean simple-list as
(deftype simple-list (type)
;; not quite legal
#1=`(cons ,type (or ,#1# null)))
and complex-list as a regular, can-holds-anything-list?
Cheers,
-- Nikodemus
Nikodemus Siivola <······@random-state.net> writes:
> In comp.lang.lisp Marco Antoniotti <·······@cs.nyu.edu> wrote:
>
> > some restriction on lists (incidentally I strongly believe that the CL
> > type system should be extended to include SIMPLE-LISTs and COMPLEX-LISTs
>
> I assume you mean simple-list as
>
> (deftype simple-list (type)
> ;; not quite legal
> #1=`(cons ,type (or ,#1# null)))
>
> and complex-list as a regular, can-holds-anything-list?
>
This is one of my biggest CL wishlist items - and in fact it could be
solved a bit simpler if CL would allow specialized SEQUENCE types:
(deftype simple-list (type)
`(and list (sequence type)))
Alas, it does not, but IMHO it would be preferred to sorting out the
recursive type specifier issues you allude to above.
--
Brian Mastenbrook
http://www.cs.indiana.edu/~bmastenb/