纯函数式并行编程:组合子的泛化与设计原则
1. API 设计中的法则选择
在 API 设计中,为其选择合适的法则至关重要。这有助于发现实现中的潜在问题,例如线程资源泄漏。选择 API 法则时,有以下几种方法:
- 基于概念模型推理 :思考概念模型,从中推导出应该遵循的法则。
- 发明有用的法则 :创造你认为可能有用或有指导意义的法则,并验证其在模型中的可行性和合理性。
- 基于实现推导法则 :根据实现来提出预期成立的法则,但这种方法可能较弱,因为法则可能仅仅反映了实现,即使实现存在缺陷或需要不寻常的副作用条件,也会使组合变得困难。
2. 组合子的泛化过程
2.1 从 choice 到 choiceN
假设我们需要一个函数,根据初始计算的结果在两个分支计算中进行选择:
def choice[A](cond: Par[Boolean])(t: Par[A], f: Par[A]): Par[A]
这个函数会根据 cond 的结果选择执行 t 或 f 。简单的阻塞实现如下:
def choice[A](cond: Par[Boolean])(t: Par[A], f: Par
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



