[Haskell] Discrete event simulation
Paul Johnson
paul at cogito.org.uk
Thu Jan 26 18:35:11 EST 2006
Hi, I'm going slowly nuts here. Maybe someone can help me out.
I want to do some fairly straightforward discrete event simulation.
Tasks do side effects, probably in the ST monad. Every so often the
current task calls "delay n" where n is a number of seconds. This puts
the task back on a list of schedulable processes that is ordered by
time, and then takes the head of the list and starts executing it.
Part of this will be some kind of synchronisation primitive. I don't
much care what it is, but somewhere I need a way to make a process wait
until something happens rather than just a constant time.
I think I want to use something like
type Task r s a = ContT r (ST s) a
But I can't see how to actually do it. I've read All About Monads.
I've googled for anything to do with continuations and coroutines. I'm
stuck. Can someone show me how to do it.
Thanks,
Paul.
More information about the Haskell
mailing list