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