On 2007-02-15, Gabriel Genellina <[EMAIL PROTECTED]> wrote: > En Wed, 14 Feb 2007 10:41:53 -0300, Neil Cerutti <[EMAIL PROTECTED]> > escribió: >> So the effect is that mutual recursion isn't actually any >> harder. > > But some kind of language support is required in this case. At > least I don't know how to handle mutual recursion (apart from > inlining one function inside the other...). But I'm certainly > not a "program transformation guru" (neither a novice!) so I > would not be surprised if someone says it can be done...
What happens (using the model of an imaginary virtual machine, perhaps like the Python interpreter) is the following. A normal function call pushes a call-frame onto a stack. The call-frame contains information necessary for returning from the function, and usually a place to store its local variables and parameters. A function called in "tail" position simply overwrites the current call-frame with the new one instead of pushing it onto the stack. -- Neil Cerutti The church will host an evening of fine dining, superb entertainment, and gracious hostility. --Church Bulletin Blooper -- http://mail.python.org/mailman/listinfo/python-list