[Haskell-cafe] question about interruptable state runner

Alexander V Vershilov alexander.vershilov at gmail.com
Fri Jun 10 22:24:08 CEST 2011


Fri, Jun 10, 2011 at 03:27:44PM +0200, Heinrich Apfelmus wrote
> Alexander V Vershilov wrote:
> > 
> > I'm writing a small tcp server with that can handle connections and
> > answer by rules writen in a small script that can be interpreted by server.
> > For this purpose I've written an interpreter that has type
> > 
> >   ErrorT MyError (StateT ScriptState IO)
> > 
> > so I can call "native" IO function in that script, and define new one.
> >   I can run this script with runState (runErrorT (...)) oldState.
> > 
> > But there is one problem: in script i should be able to call functions that
> > will stop script interpretation and wait for some server event. To continue
> > interpretation. 
> > 
> > Can smb give an advice what is the best way to do it?
> 
> Basically, you want to stop the interpreter and resume it at some later 
> point. You need to implement a custom monad for that, which can easily 
> be done with the help of my  operational  package.
> 
>     http://projects.haskell.org/operational/
> 
> In particular, the examples
> 
>     WebSessionState.lhs
>     TicTacToe.hs
>     PoorMansConcurrency.hs
> 
> show how to suspend and resume the control flow. Feel free to request 
> additional examples.
> 
> 
> Best regards,
> Heinrich Apfelmus
> 

Operational package is the what I need, thanks. Documentation is and examples
are very good so I think I'll have no problems to implement such a behavior.

--
Best regards
  Alexander V Vershilov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110610/0637a86e/attachment-0001.pgp>


More information about the Haskell-Cafe mailing list