Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 foo 函数定义如下
fun foo f = f 5;
如何推断函数类型?
我们可以看到f一定是一个函数。我们还看到,f 将整数作为输入,因为我们调用f 5. 因此f必须有类型int -> 'a。
f
f 5
int -> 'a
foo然后接受一个int -> 'a, 并产生一个'a, 产生: foo : (int -> 'a) -> 'a.
foo
'a
foo : (int -> 'a) -> 'a
SML 使用该算法的一个变体来进行类型推断:
http://en.wikipedia.org/wiki/Hindley%E2%80%93Milner