在研究F# 和 OCaml 之间的类型推断差异时,我发现他们倾向于关注主格类型系统与结构 类型系统。然后我发现了函数式编程语言的独特特征,其中将类型和类型推断列为不同的特征。
由于特征文章说 OCaml 和 F# 都使用我认为是标准算法的Damas-Milner类型推断,即不允许变化的算法,这两个特征如何关联?是不是 Damas-Milner 是构建两个类型推理系统的基础,但它们每个都根据类型修改 Damas-Milner?
我还检查了 Damas、Milner 和 Hindley 的 F# 源代码,但没有找到。搜索推断一词出现了类型推断的代码。
如果是这样,是否有任何论文讨论特定语言的每种类型推理算法的细节,或者我是否必须查看OCaml和F#的源代码。
编辑
这是一个突出显示与 OCaml 和 F# 之间的类型推断相关的差异的页面。