假设以下内容:
我有一个名为World
的类型代表一些模拟状态。我也有这种类型的同义词:
type Update = World -> World
Haskell是否能够序列化Update类型以便可以通过网络传递?或者还有其他方法吗?也许我不是在寻找代码逻辑的序列化,因为某种指针或标识符可以在另一端读取。发送和接收过程都运行相同的Haskell程序。
答案 0 :(得分:12)
distributed-process包正是您所描述的。由于每个程序已经具有相同的功能集,因此指向该功能的指针从一个进程传递到另一个进程。已经提到将该功能序列化为潜在的未来目标,但听起来可能需要改变GHC。 github page是后端存在的良好资源。 github-pages看起来非常好用一些例子,但直到刚才我才知道。
issue 11周围的少数Haskell Parallel摘要是我记得最常学习的地方。绝对需要一些时间来探索github-pages我知道我会。{/ p>
如果我没记错的话,hackage包中或者github repo中有一些简单的例子可以探讨工作窃取与工作共享和类似策略。
答案 1 :(得分:3)
我建议制作DSL数据结构。遗憾的是,Haskell没有lisp的运行时编译功能,但它应该足够了。