[gambit-list] State machine with call/cc (was CPS style)

Joel Reymont joelr at well.com
Wed Dec 8 04:16:14 EST 2004


> Marc Feeley wrote:

>Why do you want to do this?  In Scheme you can code in direct
>style, and use call/cc when you want to access the continuation.
>The overall structure of your code should be much clearer than
>CPS'ed code.

I realized after a couple more days of reasearch that I'm confused. What
I really want to do is code state machine with call/cc since I have an
event-driven application. I couldn't figure out how to do this, though.

I'm thinking that I should have a single "dispatch-event" function as
entry into scheme. This function would deserialize the event and figure
out which state machine it belongs to. This part I have no trouble with.

I cannot figure out, though, how to use call/cc to move the state machine
from one state to the next upon event. When an event arrives I need to
pass it to the state machine and have it advance itself and return the
outgoing packet or #f to signal that the exit state has been reached.

One thing that confuses me is that it seems that I need to return the
continuation (not sure if I actually need to) but then I also need to
return the outgoing event/packet from my "entry-into-scheme-dispatch-
function".

    Thanks, Joel 

-- 
OpenPoker: The Linux of poker software
http://wagerlabs.com/forums




More information about the Gambit-list mailing list