Barry Margolin
2/19/2016 7:24:00 PM
In article <20160219094144.22@kylheku.com>,
Kaz Kylheku <330-706-9395@kylheku.com> wrote:
> On 2016-02-19, Jim Newton <jimka.issy@gmail.com> wrote:
> > On Thursday, February 18, 2016 at 12:05:14 PM UTC+1, Didier Verna wrote:
> >> > Wouldn't such a specification have allowed implementations to expand
> >> > types lazily if they chose to?
> >>
> >> Probably, but I doubt any implementation would have cared to do so,
> >> given the applicative order approach for evaluation that we have
> >> (imagine that a SATISFIES predicate does side effects ;-)).
> >>
> >
> > "would have cared to?" In my opinion it is just a wart in the spec, that
> > an implementation
> > is forbidden from allowing well-defined recursive types. I'm not
> > suggesting it should be required,
> > but if I want to experiment with recursive types, does that mean I have to
> > use a different language
> > than Common Lisp? That seems unfortunate to me.
>
> C has recursive types, luckily, so you don't have to look far.
>
> struct list { struct list *next; void *data };
>
> :)
But C doesn't have TYPEP, so it never has to traverse the type
definition tree.
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***