bas*_*354 1 haskell operators dot-operator
我有一个使用Dot-operator的函数.现在我想写没有点.我怎样才能做到这一点?
all p = and . map p
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
all p = and (map p)
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
4.hs:8:13:
Couldn't match expected type `[Bool]'
with actual type `[a0] -> [b0]'
In the return type of a call of `map'
Probable cause: `map' is applied to too few arguments
In the first argument of `and', namely `(map p)'
In the expression: and (map p)
Run Code Online (Sandbox Code Playgroud)
Fre*_*Foo 14
看看定义的(.)
:
f . g = \ x -> f (g x)
Run Code Online (Sandbox Code Playgroud)
扩展这个给出了
and . (map p) = \x -> and ((map p) x)
Run Code Online (Sandbox Code Playgroud)
要么
all p x = and (map p x)
Run Code Online (Sandbox Code Playgroud)