On Thu, 2003-08-07 at 22:04, Ben Giddings wrote: > Well, in this case, maybe with Continuation.new acting exactly like callcc > does now. I just think it would look a little cleaner than it does now. > "callcc" seems deceptive because you're not actually calling the > continuation, you're evaluating a block and passing it the continuation, > which it may call later. Ahh, that's where the confusion is! Callcc doesn't stand for "call continuation". It is short for "call with current continuation". In other words, it calls a function passing in the current continuation. Actually, to me it seems that the Continuation.new syntax is the one that is deceptive. For callcc doesn't create a NEW continuation, it just makes the existing continuation for the block available. All function calls have a continuation (its the code that is executed when the function returns). Callcc just makes that already existing continuation available. -- -- Jim Weirich jweirich / one.net http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)