我想在哈斯克尔建立一个生物系统模型。我想这样做如下。
在Haskell中,推荐的方法是什么。我很了解基本的Haskell。我对Monad和Arrow也很满意。当我阅读反应性香蕉库时,我能掌握很多东西。
发布于 2014-02-07 13:10:20
你所描述的东西似乎是演员模型。这是Erlang编程语言的基本原理,但是Haskell没有内置的演员原语。快速检查给hactors和simple-actors,但我不能详细说明细节。
发布于 2014-02-07 17:02:58
如果你想要在哈斯克尔的演员系统,我强烈建议看看云哈斯克尔。它基于Erlang/OTP (提供相同的消息传递、并发语义和故障处理)。
不过,请注意:我是维护者。;)
https://github.com/haskell-distributed http://haskell-distributed.github.io
发布于 2014-02-08 01:13:33
这里的其他人都提到过演员,所以我想加入并提到pipes-concurrency,这是一种非分布式的演员形式。
就像演员一样,你有一种方法可以spawn一个邮箱:
import Pipes
import Pipes.Concurrent
import qualified Pipes.Prelude
main = do
(output, input) <- spawn Unbounded
.....。向邮箱发送邮件:
forkIO $ runEffect $ Pipes.Prelude.stdinLn >-> toOutput output..。并从邮箱中读取邮件:
runEffect $ runEffect $ fromInput input >-> Pipes.Prelude.stdoutLn您甚至不必使用pipes接口。您可以使用send一次发送单个消息。
send :: Output a -> a -> STM Bool..。并使用recv接收单个消息。
recv :: Input a -> STM (Maybe a)它附带了一个解释如何使用库的扩展教程。
https://stackoverflow.com/questions/21628309
复制相似问题