|
|
1
152
辛德利·米尔纳是 类型系统 由罗杰·辛德利(研究逻辑)和罗宾·米尔纳(研究编程语言)独立发现。辛德利·米尔纳的优势在于
Hindley Milner是几乎所有静态类型函数语言类型系统的基础。这些常用语言包括
所有这些语言都扩展了Hindley-Milner;Haskell、Clean和Objective-Caml以雄心勃勃和不同寻常的方式实现了这一点。(需要扩展来处理可变变量,因为基本的Hindley-Milner可以被颠覆,例如,使用一个包含一系列未指定类型值的可变单元格。这些问题是通过一个称为 value restriction ) 许多其他基于类型化函数语言的次要语言和工具使用HindleyMilner。 辛德利·米尔纳是 System F ,允许更多类型,但是 需要程序员的注释 . |
|
|
2
8
你可以使用谷歌学者或者城市学者——或者你当地的大学图书馆——找到原始的论文。第一本已经足够大了,你可能需要找到这本杂志的装订本,我在网上找不到。我为另一个找到的链接已断开,但可能还有其他链接。你一定能找到引用这些的文件。 辛德利,罗杰J, 组合逻辑中对象的主类型方案 , 1969年美国数学学会汇刊。 米尔纳,罗宾, 类型多态性理论 ,计算机与系统科学杂志,1978年。 |
|
|
3
5
C中简单的Hindley-Milner类型推断实现: Hindley-Milner type inference over (Lisp-ish) S-expressions, in under 650 lines of C# 注意,实现仅在大约270行C的范围内(对于算法w proper和支持它的少数数据结构,无论如何)。 用法摘录:
…收益率:
也见 Brian McKenna's JavaScript implementation 在BitBucket上,这也有助于开始(为我工作)。 'Hth' |