Subject: Re: JVM vs CLR
From: (Rob Warnock)
Date: Sat, 31 Jan 2009 19:56:20 -0600
Newsgroups: comp.lang.lisp
Message-ID: <>
William D Clinger  <> 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".


Rob Warnock			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607