Subject: Re: JVM vs CLR
From: rpw3@rpw3.org (Rob Warnock)
Date: Sat, 31 Jan 2009 19:56:20 -0600
Newsgroups: comp.lang.lisp
Message-ID: <CoSdnVrIi5rZnBjUnZ2dnUVZ_trinZ2d@speakeasy.net>
William D Clinger  <cesura17@yahoo.com> wrote:
+---------------
| George Neuner corrected Harrop:
| > "Tail call" is more generic - it can refer to any function call
| > occurring in tail position.
| 
| Neuner is correct.  "Tail call" is a syntactic concept,
| having nothing to do with how tail calls are implemented.
| 
| For Scheme, tail calls are defined formally by R5RS 3.5
| and R6RS 11.20 [1,2].
| 
| > Scheme uses the term "proper tail recursion" to refer to a self
| > recursive call in tail position.
| 
| No.  Proper tail recursion is not limited to self tail
| calls, but is about the asymptotic space efficiency
| achieved by implementing general tail calls without
| creating new continuations unnecessarily.  R5RS 3.5
| and R6RS 5.11 define proper tail recursion by
| reference to the formal definition in my PLDI 1998
| paper [3].
+---------------

It is this sort of terminological confusion that makes me
really, *really* wish that RxRS had instead used the term
"proper tail call optimization", since the latter encompasses
both the general case and the specific case of "tail recursion".
(*sigh*)


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607