Subject: Re: do loops and idioms
From: (Rob Warnock)
Date: 1997/12/03
Newsgroups: comp.lang.lisp
Message-ID: <662n1a$>

Chuck Fry <> wrote:
| >Which implementations of Scheme (or whatever name is used) are not
| >properly tail-recursive?
| If I remember correctly, at least R4RS specifies that tail recursion
| support is mandatory, a fundamental property of Scheme.

While that is quite true, there are still several useful implementations
that violate it, at least in its most general form (that is, other than
immediate self-recursion), primarily compilers which chose intermediate
target languages (e.g., C, Java) which don't conveniently support generalized
tail-call optimization, e.g.:

	- Scheme->C
	- Bigloo
	- Stalin
	- Kawa (Scheme in Java)

...and probably others.


p.s. AFAIK, all of the above *will* properly handle tail-recursion within
a single "DEFINE" or "LETREC" group, just not the full generality.

Rob Warnock, 7L-551
Silicon Graphics, Inc.		Phone: 650-933-1673 [New area code!]
2011 N. Shoreline Blvd.		FAX: 650-933-4392
Mountain View, CA  94043	PP-ASEL-IA