Subject: Re: Tail recursion & CL From: Erik Naggum <erik@naggum.net> Date: Thu, 25 Oct 2001 14:31:04 GMT Newsgroups: comp.lang.lisp Message-ID: <3213009062053491@naggum.net> * Kent M Pitman | Yes it does. * jrm@itasoftware.com | At the risk of sounding like John Cleese, ``No, it doesn't.'' I think Kent means "there is a case when it does" and that you mean "there is a case when it doesn't". The former is far more interesting than the latter, because the former has far more implications that the latter. That some problem vanish when block does not allocate is quite unimportant if those problems do not vanish if block does allocate. That it is possible to implement something a particular way that will remove a particular set of problems, does not mean that that particular way is usable within the framework that needs to cater to more than just this particular problem. This line of argument is the core of my objection to _requiring_ Common Lisp systems to do tail-call merging, because I can foresee several negative consequences of this requirement for several implementations that will impact other useful things that I want much more than I want tail-call merging. Other people have other priorities, but since there conflicts, and people can actually make do with _implementations_ that offer something they want (except for Juliusz Chroboczek, who does not want to use it, anyway), and since changing the language to force everybody to do tail-call merging carries a cost in terms of what other things become easier and harder to do -- such as an attendant reluctance to do things that make tail-call merging impossible -- the status quo is _politically_ satisfactory: Making changes will be _unsatisfactory_. /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate. -- The purpose of computing is insight, not numbers. -- Richard Hamming