You need to look into functional reactive programming, but be warned, this is active research :-) <div><div><br></div><div>Two libraries I know of in which you can currently make working simulations are Yampa and Elerea. But the former doesn&#39;t scale really well, and the latter might not really be functional (I think it&#39;s not referentially transparent)</div>
<div><br></div><div>Other libraries such as Reactive and Grapefruit are very promising, but I don&#39;t know their current status.</div><div><br></div><div>Good luck. For me (I&#39;m also an experienced imperative programmer in the simulation field), Haskell is very addictive, but also insanely frustrating because I never have the feeling I know the language well enough and I don&#39;t see the big picture yet. So I can&#39;t yet achieve in Haskell what I can in other languages, but purity and laziness are drugs, so you&#39;re doomed :-)</div>
<div><br></div><div><div><div><div><div class="gmail_quote">On Tue, Aug 18, 2009 at 2:42 PM, Eric Wong <span dir="ltr">&lt;<a href="mailto:wsysdu@gmail.com">wsysdu@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello, Haskellers!<br>
<br>
I&#39;m relatively new to haskell and due to my strong imperative background, it&#39;s<br>
really a pain to learn haskell. But I&#39;m really indulged in it. :)<br>
<br>
Now I think I understand the basics of Haskell very well, such as the type<br>
system and monad. And for those data-flow kind of applications, I can easily<br>
structure the problem in a functional way and sketch out an intuitive picture<br>
of the computation. But for simulation kind-of problems, in which I think OO<br>
really fits the best, what&#39;s the haskell way to structure such problems?<br>
I once thought maybe I can use the State monad to simulate objects. But it&#39;s<br>
really hard for me to implement, because I think State monad is used to<br>
simulate a global shared state, is it right?<br>
<br>
Then what&#39;s the best way to simulate private states or just instead how to<br>
solve simulation problems such as a physical engine using the haskell way?<br>
<br>
Best regards.<br>
Eric<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br></div></div></div></div></div>