Jerome Vouillon <[EMAIL PROTECTED]> writes: > On Tue, Feb 25, 2003 at 08:47:55AM +0100, Leopold Toetsch wrote: >> >Um... no. tail call optimization implies being able to replace *any* >> >tail call, not just a recursive one with a simple goto. Consider the >> >following calling sequence: >> >> >> > b(arg) -> Push Continuation A onto the continuation chain >> >> >> Continuations are different anyway. They store the context of the parent >> at the point they were created, and on invoke they swap context. > > You don't mean the same thing by continuation. For Piers, a > continuation is just a place where one can jump.
No, a continuation is just a place to which one might return. > So, for a function call, you push the return continuation (the place > where you must jump on return) onto the stack and jump to the > continuation corresponding to the function body. What you mean by a > continuation is what one may call "first-class continuation", that > is a continuation which can be manipulated like any other "object" > (you can pass it as argument of a function, return it from a > function, put it in a variable, ...) Which can also be thought of as 'just a place to which one can return', but you can explicitly alter what one returns. -- Piers