jjzjj

ConcreteType

全部标签

java - Java 中的 Hindley-Milner 算法

我正在开发一个用Java编写的基于数据流的简单系统(想象它就像一个LabView编辑器/运行时)。用户可以在编辑器中将block连接在一起,我需要类型推断来确保数据流图是正确的,然而,大多数类型推断示例都是用数学符号、ML、Scala、Perl等编写的,我不会“说”".我阅读了Hindley-Milner算法并找到了this文档中有一个我可以实现的很好的例子。它适用于一组类似T1=T2的约束。但是,我的数据流图转换为T1>=T2,如约束(或T2扩展T1,或协方差,或T1Tmerge(Tin1,Tin2))和具体类型。回顾一下HM算法:Type={TypeVariable,Concret