Subject: Re: Tail recursion & CL
From: Erik Naggum <>
Date: Sun, 21 Oct 2001 23:18:38 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Jeff Mincy
| Note that when looking at return-from, you also need to make sure that
| the block 'foo' being returned from is the outermost block of the
| function 'foo'.

  Good point.  As we investigate this, more and more context turns out to
  to be required to determine whether we have a "final" function call.  I
  think this shows that the complexities of real life programming, which is
  what Common Lisp is all about making less complex, are such that you end
  up with a lot fewer opportunities for tail-call merging than in languages
  made for simpler worlds.  It is actually quite interesting to see how
  simple the functions have to be in order that, e.g., Allegro CL, manages
  to perform tail-call merging and how little of the useful stuff in Common
  Lisp can be used without making it too hard for the compiler to do that.

| I think I cared about tail calls only to the extent that it could be used
| to make silly benchmarks like tak run faster.


  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