Would anyone have an example of implementing a state machine in continuation passing style (CPS)? I'm looking for a simple example although it does not have to be.
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.
Howdy!
Is it possible to return continuations to C in Gambit? This is a quote from the documentation:
Yes you can. The Scheme continuation (call it a stack if you want) and the C stack are managed independently. Scheme continuations are managed in a heap and you can jump from one continuation to another one at will. In C, once you return from a function call (i.e. you pop a stack frame), you can't return to the stack frame that was popped. The problem is when you mix both worlds, i.e. you call C from Scheme or Scheme from C. In this case, you can still jump from one Scheme continuation to another at will. However, if you return from a C to Scheme function call X, this may remove from the C stack some frames related to other Scheme continuations (the frames for the C to Scheme calls that have been created since the call X and that have not returned yet). The constraint is that you can't return from these (otherwise unrelated) C to Scheme calls.
Marc