# proper tail-recursion proposal

   Date: Fri, 9 Jan 1998 05:49:32 -0500
From: Richard Kelsey <kelsey@research.nj.nec.com>

Here is a modified version of the proposal. [...]

Although I really do appreciate the try, this new wording does really
nothing to address the issue I raised.  (Not that anyone likely cares,
but my lingering problem is that the "implementation complexity"
remark does not cover my concern; it is not "implementation
complexity" that concerns me--it is "user conceptual and ease-of-use
issues".  I do not regard the use of MIT Scheme's techniques as a 100%
satisfactory workaround, and so the "implementation complexity" of adding
them does not address the issue--at least for me.)

HOWEVER, in the spirit of Ramsdell's remarks, I suggest an alternate
approach: striking the rationale text (and the original text I
complained about, if it still exists--I couldn't tell).  That is, get
rid of both what I have characterized as "propaganda" AND any
ineffective attempt to correct it.  I believe the paragraph adds
nothing material to the document that (as Ramsdell notes) couldn't be
added by external documents commenting on the spec.  Seems to me its
absence ought to more or less satisfy all parties...

TEXT TO BE REMOVED FROM THE ORIGINAL PROPOSAL:

Proper tail-recursion is important because it allows iterative
computations to be expressed efficiently, reliably, and portably
using ordinary procedure calls.

TEXT TO BE REMOVED FROM THE REVISED PROPOSAL:

\begin{rationale}

Proper tail-recursion allows iterative computations to be expressed
using ordinary procedure calls.  An alternative would be to have
one or more iterative primitive expressions (make DO a primitive
expression instead of a derived expression, for example).  Requiring
proper tail-recursion gives the programmer greater flexibility at the
cost of greater conceptual overhead (witness the length of this section)
and implementation complexity.