At 8:12 AM +0900 8/7/03, Ben Giddings wrote: >On Wed August 6 2003 6:45 pm, Dan Sugalski wrote: >> >1) Why do they have the strange syntax they have >> >> They don't--there's no inherent strange syntax to them. The syntax >> comes from the language implementing the continuation semantics. > >Like Hal said, I meant why do they have the strange syntax they do "in Ruby". >There just doesn't seem to be a good reason for a block. Ah, OK. With the reference to the ll1 stuff, I was assuming you were pondering the oddness of Scheme or (call-with-current-continuation ...). Sorry, misunderstood. > It also seems >strange to have a class with no constructor that can only be created by a >Kernel method. > >Is there some reason that Continuation.new couldn't work? That'd be for Matz to answer for sure, but the one thing about continuations is you really can't create them in library code. (Well, you can but there are issues) Putting them in what's essentially a "guts of the interpreter" class makes some amount of sense. > > It's generally considered Really Evil to look at anything inside a >> continuation. Darned useful, though... > >I like being evil. ;) > >I can imagine it being truly evil to be able to *change* a Continuation, but >it doesn't strike me as terribly evil to look inside them. Even if the only >(programmer accessible) extra information them was similar to what you get >out of Kernel.caller. I expect that's just a SMOP. Throw something together and pass it by Matz (or make it a module, I suppose) and see how things go. -- Dan --------------------------------------"it's like this"------------------- Dan Sugalski even samurai dan / sidhe.org have teddy bears and even teddy bears get drunk