[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: REST-LIST-ALLOCATION (Version 3)
- To: William Clinger <email@example.com>
- Subject: Re: Issue: REST-LIST-ALLOCATION (Version 3)
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Tue, 3 Jan 89 12:36 EST
- Cc: firstname.lastname@example.org
- In-reply-to: <8901031659.AA06887@fog.cs.uoregon.edu>
Date: Tue, 3 Jan 89 08:59:44 PDT
From: William Clinger <email@example.com>
Moon writes of his example that:
All I did was change APPLY to FUNCALL, and remove the corresponding
&REST. I find it inconsistent if calling with APPLY is guaranteed to
copy one of the arguments, but calling with FUNCALL is not.
To my way of thinking, APPLY never copies any arguments so APPLY is
perfectly consistent with FUNCALL even if &REST lists are always
freshly consed. You see, my understanding of APPLY is that it calls
its first argument on the elements of the list that is its second
argument (or the analagous thing if you give it more than two arguments).
The arguments, therefore, are the elements of the list, not the list
itself, and so the arguments are not copied.
It is true that the list created by &REST list processing may happen to
be a copy of some existing list, possibly even a list that was once
passed to APPLY, but I don't see why APPLY should be given credit for
having made the copy.
Something happens in between the APPLY and the &REST. You think of it as
connected with the &REST, I think of it as connected with the APPLY, and
someone else might think of it as an independent thing not really connected
with either of them. Okay.