假设如下:
我有一个类型叫做World
代表一些模拟状态。我也有这种类型的同义词:
type Update = World -> World
Haskell 是否能够序列化 Update 类型以便它可以通过网络传递?或者有没有其他方法可以做到这一点?也许我不是在寻找代码逻辑的序列化,而是在另一端可以读取的某种指针或标识符。发送和接收进程都在运行同一个 Haskell 程序。
假设如下:
我有一个类型叫做World
代表一些模拟状态。我也有这种类型的同义词:
type Update = World -> World
Haskell 是否能够序列化 Update 类型以便它可以通过网络传递?或者有没有其他方法可以做到这一点?也许我不是在寻找代码逻辑的序列化,而是在另一端可以读取的某种指针或标识符。发送和接收进程都在运行同一个 Haskell 程序。
分布式进程包正是您所描述的。由于每个程序已经具有相同的一组函数,因此指向该函数的指针从一个进程传递到另一个进程。有人提到该功能的序列化作为潜在的未来目标,但听起来可能需要对 GHC 进行更改。github 页面是了解存在哪些后端的好资源。github-pages有一些例子看起来很不错,但直到刚才我才知道。
围绕第 11 期的一些 Haskell Parallel 摘要是我记得学习最多的地方。绝对需要一些时间来探索我知道我会的 github 页面。
如果我没记错的话,在 hackage 包或 github 存储库中有一些简单的示例,用于探索工作窃取与工作共享和类似策略。
我建议制作一个 DSL 数据结构。遗憾的是 Haskell 没有 lisp 的运行时编译功能,但应该足够了。