0

我有一个 foo 函数定义如下

fun foo f = f 5;

如何推断函数类型?

4

2 回答 2

2

我们可以看到f一定是一个函数。我们还看到,f 将整数作为输入,因为我们调用f 5. 因此f必须有类型int -> 'a

foo然后接受一个int -> 'a, 并产生一个'a, 产生: foo : (int -> 'a) -> 'a.

于 2013-09-16T23:17:45.987 回答
0

SML 使用该算法的一个变体来进行类型推断:

http://en.wikipedia.org/wiki/Hindley%E2%80%93Milner

于 2013-09-17T15:02:01.930 回答