On Mon, Jul 08, 2002 at 04:54:16PM -0400, Dan Sugalski wrote:
> Pretty simple. (For illustrative purposes) To do that with 
> continuations, it'd look like:
> 
>    $cont = take_continuation();
>    if ($foo) {
>      $foo--;
>      invoke($cont);
>    }
> 
> take_continuation() returns a continuation for the current point (or 
> it could return one for the start of the next statement--either 
> works), and invoke takes a continuation and invokes it. When you 
> invoke a continuation you put the call scratchpads and lexical 
> scratchpads back to the state they were when you took the 
> continuation.

So take_continuation is called once and returns 1 or more times?
(1st return is just after you called it, second and later are for each time
you invoke $cont from somewhere else)

and invoke is goto-on-steroids, and never returns? (except if $cont is duff,
somewhat like the exec system call in Unix only returns on failure)

And everything else is serene and swan-like?

(ie the language gives the appearance of moving smoothly on the surface,
but under water its feet are paddling furiously to implement motion)

Nicholas Clark
-- 
Even better than the real thing:        http://nms-cgi.sourceforge.net/

Reply via email to