[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: why tail recursion matters and why Java isn't it, was Re: lispperformance was Re: problems with lisp
>>>>> "Peter" == Peter Seibel <email@example.com> writes:
Peter> Guy Steele - Sun Microsystems Labs <Guy.Steele@sun.com> writes:
>> P.S. Yes, per Pascal Costanza, Common Lisp with proper tail
>> recursion and call/cc WOULD be a better language.
Peter> Mr. Steele (Guy? Quux?):
Peter> I'm curious if you happen to have an opinion on Kent Pitman's
Peter> argument that call/cc would make Common Lisp a *worse* language
Peter> because it can't be compatibly combined with unwind-protect. I don't
Peter> have a particular point of view in this argument, mostly because I'm
Peter> not sure I've really understood what he's trying to say nor the folks
Peter> who have occasionally argued with him about it on comp.lang.lisp.
Peter>  <http://www.nhplace.com/kent/PFAQ/unwind-protect-vs-continuations.html>
Pitman completely misses the point about DYNAMIC-WIND.
This is understandable---back in the dark ages, it was originally
conceived as something to interact with multitasking. But, in the
course of integrating it into Scheme, that has turned out to be a bad
idea, which is why multi-threaded Scheme implementations usually have
a DYNAMIC-WIND that doesn't interact with multitasking. In this
variant, DYNAMIC-WIND does solve the problems which UNWIND-PROTECT
solves in Common Lisp.
DYNAMIC-WIND is one of the most-misunderstood parts of R5RS.
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla