[Haskell-cafe] Replacing the world in a State Machine with IO

Wojtek Narczyński wojtek at power.com.pl
Mon Nov 24 09:09:35 UTC 2014


On 23.11.2014 18:04, martin wrote:
> at my shop some folks are implementing things using a java tool called "activiti". AFAIK, they create a bunch of
> processes and a "process engine" takes care of activating or deactivating processes. Among the things which can cause a
> state transition are external events. I wonder how one could do this in haskell.
>
Like a like a mini operating system: processes and their scheduler? 
Perhaps take a look at the following:

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.8039
http://repository.upenn.edu/cgi/viewcontent.cgi?article=1391&context=cis_papers
http://www.haskellforall.com/2013/06/from-zero-to-cooperative-threads-in-33.html

> I suppose I could handle this using threads, but I don't trust threads. They look simple first, but then the trouble
> they cause typically exceeds my worst expectations.
In Erlang you woudn't think much and use (lightweight) processes and 
message passing. You can do the same in Haskell, just don't use global 
state, use channels instead.

I also recall https://hackage.haskell.org/package/aivika, discrete event 
simulation library, but I don't know if it is related.

-- 
Wojtek


More information about the Haskell-Cafe mailing list