[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 <peter@javamonkey.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[1] 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> -Peter

Peter> [1] <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