```Gavin Sinclair wrote:
> On Monday, March 24, 2003, 3:35:23 PM, Julian wrote:
>
>
>>Or have I misinterpreted the problem?  It seems too trivial to be a
>>"show me that this is possible" kind of problem...  :-(
>
>
> Thanks for the solution.  You didn't misunderstand the problem, nor
> did I doubt it was possible.  But Jim mentioned that walking two lists
> in parallel was a special case that Ruby's iterators don't handle very
> gracefully.  So I wanted to see what "the Ruby way" was.
>
> Thanks also for reinforcing that I shall never understand
> continuations!
>
> Gavin
>
>

In all fairness, my continuation-based solution was much more convoluted
than it had to be.  I was just having so much fun with them I couldn't
help myself... ;-)

Ok, the basics of continuations:

A continuation (in theory) represents "the rest of the program" from the
point that it's created.  Imagine you're walking down the street and you
come to a fork in the road.  You don't know whether to go left or right,
so you generate a "continuation".

Left-or-right?
generate a continuation called "choice"
|  \--Go left
|     |---walk around
|     |---find a mean dog
|     \---get bitten by the mean, terribly hungry dog
|            \---that wasn't a good idea.
|                  \---tell "choice" that left was a bad idea
|
|----according to "choice", left was a bad idea

Now, the real magic of continuations happens when you have more than one
of them.

Say when you got bitten by the dog, you generated another continuation
called "got bitten", before telling "choice" that left was a bad idea.

So, you're walking along, un-bitten, since you went right at the fork in
the road after all, and suddenly you're hit by an oncoming train.

You decide that getting bitten by the dog was preferable to this, so you
kindly ask the continuation named "got bitten" to take you back to the
alley where you were lying bleeding from the dog bite, but at least
hadn't been hit by a train. ;-)

The moral of the story:  When in doubt, just stay home.

For a more in-depth look at continuations, see "Run, Lola, Run", "The
Legend of Zelda: Ocarina of Time", and "Back to the Future: Part II"   :-)

```