Subject: Re: Tail recursion & CL
From: Erik Naggum <>
Date: Wed, 24 Oct 2001 18:30:00 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Juliusz Chroboczek
| The keyword I'd like you to note is /reliable/.  This should not be taken
| as a statement of value (which is why I avoid using /proper/), but rather
| as the statement that the implementation guarantees tail-call elimination
| in a well-defined set of situations, so that the programmer can /rely/ on
| it.

  You really need a language definition that provides what you want.  There
  is at least one language definition that provides it: Scheme.  I think
  you should now go and bother the Scheme people with all the things you
  miss in their language from Common Lisp and leave people here alone.

  There is unfortunately no way you can get what you want in Common Lisp.
  It is politically impossible.

| Erik has cited the example of ACL.  Last time I checked, ACL did not
| document the circumstances under which it performs tail-call elimination.
| Thus, from the programmer's point of view, ACL's tail-call elimination is
| anything but reliable.

  Oh, come on.  There is no way you will be satisfied, anyway, so there is
  no value to be gained from catering to your needs.  Just use Scheme and
  reach out and bug someone in that community about their single namespace
  and numerous other mistakes.  It will be about as fruitless as your bogus
  desires here, but at least you will have that tail-call merging you want.

  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