8

假设如下:

我有一个类型叫做World代表一些模拟状态。我也有这种类型的同义词:

type Update = World -> World

Haskell 是否能够序列化 Update 类型以便它可以通过网络传递?或者有没有其他方法可以做到这一点?也许我不是在寻找代码逻辑的序列化,而是在另一端可以读取的某种指针或标识符。发送和接收进程都在运行同一个 Haskell 程序。

4

2 回答 2

12

分布式进程包正是您所描述的。由于每个程序已经具有相同的一组函数,因此指向该函数的指针从一个进程传递到另一个进程。有人提到该功能的序列化作为潜在的未来目标,但听起来可能需要对 GHC 进行更改。github 页面是了解存在哪些后端的好资源。github-pages有一些例子看起来很不错,但直到刚才我才知道。

围绕第 11 期的一些 Haskell Parallel 摘要是我记得学习最多的地方。绝对需要一些时间来探索我知道我会的 github 页面。

如果我没记错的话,在 hackage 包或 github 存储库中有一些简单的示例,用于探索工作窃取与工作共享和类似策略。

于 2013-04-16T20:05:30.827 回答
3

我建议制作一个 DSL 数据结构。遗憾的是 Haskell 没有 lisp 的运行时编译功能,但应该足够了。

于 2013-04-16T20:10:28.660 回答