[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Continuations with pictures




On Fri, 8 Aug 2003, Kevin Kelleher wrote:

> So here is a picture -- maybe you can tell me what's wrong
> with it:

It seems like you're thinking of all the junk in the room as being part of
the continuation.  But it would probably be more appropriate to think of
the junk as global variables, that would still be wherever they were even
after you invoked the continuation...

I think it would be easier to offer a slightly different picture rather
than try to fix up bit by bit the one that you illustrated.

A continuation is more like a little envelope containing instructions
about what to do next.

Imagine that right after your daughter cleaned up her room, she wanted to
go get some ice cream as a reward.  She knows that she's prone to forget
these things so she decides to write a note to remind herself (yes, it's
very odd for a child to not only forget the reward, but also have the
foresight to write it down, but bear with me).  On the outside of the
envelope, she writes "Do this next".

Now her friends come over, and her room gets messed up again.  Time
passes...

The next morning, she wakes up and in the midst of the mess, she notices
an envelope labeled "Do this next".  She opens it, and it tells her to go
get ice cream.  She thinks this sounds like a good idea, so she does.

Notice that she didn't put the room back in order first.  The room is all
the global variables -- nothing happens to them simply by invoking the
continuation.  Basically, you can think of the continuation as a "train of
thought".  When she wrote down the note (created the continuation), she
had intended to get ice cream.  She then promptly forgot this plan, so
that train of thought disappeared.  But then she read the note (invoked
the continuation) and the train of thought was resumed.  Notice also that
the original motivation for getting ice cream was as a reward for having
cleaned up the room -- but the fact that the room is now messed up again
doesn't prevent her from getting ice cream anyway.

The label on the envelope is arbitrary -- it's simply the name of the
variable that holds the continuation.  You could label it anything you
wanted, but it would still have the effect of changing your train of
thought.

There's no such thing as a future continuation, since nobody has yet had
that train of thought, so they can't write it down.  There is a difference
between upward and downward continuations, but the difference is mostly a
matter of implementation and how you use them.

I didn't address all the issues involved in continuations -- e.g. where
they "return to", but I think this conveys the gist of the concept at the
same level that you were originally asking about.

--
Kimberley Burchett
http://www.kimbly.com/