我是SML(元语言)的新手。 任何人都可以告诉我如何从下面给出的类型派生函数: ('a - >'b) - > ('b list - >'c) - > 'a - > 'c list
我很难理解SML中的curried函数。
答案 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