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