SML:从其类型解释函数

时间:2017-11-24 22:35:20

标签: sml smlnj

我是SML(元语言)的新手。 任何人都可以告诉我如何从下面给出的类型派生函数: ('a - >'b) - > ('b list - >'c) - > 'a - > 'c list

我很难理解SML中的curried函数。

1 个答案:

答案 0 :(得分:2)

这将有效

('a -> 'b) -> ('b list -> 'c) -> 'a -> 'c list

这是我的表现。

我们给出了类型

fun f g h x = ....

所以我们知道我们想要一个带有三个curried参数的函数,前两个是函数,第三个是任何函数。所以我们写道:

'a

现在第一个参数是一个函数,它接收g x 类型的东西,x是我们想要的

'b

在右侧。那将是h类型。现在'b list接收h [g x] ,因此我们可以写

'c

这会产生f类型的值,但我们希望'c list返回fun f g h x = [h [g x]]; ,所以我们只需将其放入列表中,我们就得到:

saveTicket