【发布时间】:2017-01-31 00:58:10
【问题描述】:
我试图了解这两者之间的区别;
val my_fun = length o List.filter (fn (item) => item = #"a") o String.explode
这个可以被调用(my_fun "name" 将返回 1)并且工作正常。我试图了解为什么以下操作不起作用
length o (List.filter (fn (item) => item = #"a" ) (String.explode "name"))
sml中函数组合的定义
f o g = f(g(x))
在第二种形式中,我们所做的是(我认为)
length ([#"a"])
【问题讨论】:
-
您在组合定义中缺少参数;
(f o g) x = f(g x),或f o g = fn x => f (g x)。