Typeclasses vs Modules
sm2n.ca原文 ↗
文章把 typeclass 定义为面向“小处”的 ad-hoc polymorphism,把 module 定义为面向“大处”的封装、信息隐藏和参数化组合。Rust trait 的函数级 bound 与实例搜索,和 OCaml functor 在模块级表达接口、实现和测试边界的方式形成鲜明对照;两者可以模拟彼此,却会丢失组合性或增加编译期搜索。作者因此主张语言设计先把模块化抽象当一等能力,再决定是否需要方便的按类型分派。
–浏览
评论 · Comments