如何在SML中推导函数类型(fun-foo f=f 5;)

如何在SML中推导函数类型(fun-foo f=f 5;),sml,Sml,我有一个foo函数,定义如下 fun foo f = f 5; 如何推导函数类型?我们可以看到f必须是一个函数。我们还看到,f接受一个整数作为输入,因为我们调用f5。因此f必须具有类型int->'a foo然后获取一个int->'a,并生成一个'a,生成:foo:(int->'a)->'aSML使用此算法的一个变体进行类型推断:

我有一个foo函数,定义如下

fun foo f = f 5;

如何推导函数类型?

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


foo
然后获取一个
int->'a
,并生成一个
'a
,生成:
foo:(int->'a)->'a

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