The message below is being cross-posted from the LogoForum. Please
reply here at comp.lang.logo and it will be cross-posted back to the
LogoForum. The original author of this message is
pavel@[EMAIL PROTECTED]
Harvey wrote:
> The moral of this is that "recursion" and "tail recursion" are names for
a
> specific programming technique (a procedure calling itself, and a
procedure
> tail-calling itself, respectively), NOT names for a general
problem-solving
> technique, such as "iteration," which means, more or less, doing the
same
> thing over and over.
I agree that there are differences in terminology. Especially for me
there are two meanings of iteration. The broad meaning of iteration is
something like 'traversal' and it includes 'recursive iteration'. The
narrow meaning of iteration is something like linear not-self
referencing sequential traversal.
So, by default I think of recursive and iterative as methods of reaching
the solution. These meanings of 'recursive' and 'iterative' are much
closer to their mathematical meaning (eg. see X!)
recursive definition: X! = X * (X-1)!
iterative definition: X! = X * (X-1) * (X-2) * ... * 2 * 1
Also, for me 'tail recursion' is not at the same level of abstraction as
'recursion'. Tail recursion is at a lower level -- it specifies
implementation issues. For the end user a tail and a non-tail recursions
are the same.
Pavel
__._,_.___
LogoForum messages are archived at:
http://groups.yahoo.com/group/LogoForum


|