[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
tail recursion
Date: Fri, 20 Apr 90 17:08:05 edt
From: "Marc Feeley" <feeley@chaos.cs.brandeis.edu>
If we can't define the term precisely, why not just remove the
`properly tail-recursive' requirement from Scheme and thus leave this
issue to the common sense of the implementor (just like having
negative numbers is up to the implementor!).
Tail-call optimization should have exactly the same status (present or
absent) in the language definition as garbage collection, which might
be called "cons optimization". Tail-call optimization is really just
a special kind of garbage collection, with the same wide spectrum of
implementation choices -- stop and copy, compacting, incremental,
compile-time, etc. E.g. if your target architecture really has no way
to express tail calls, then you might choose to just wait until a
stack overflow occurs and squeeze out useless stack frames at that
point.