[英]Rewrite `map (f.g.h) x` with $ without parentheses?
我想检查一下我们是否无法用没有括号的$
重写map (fgh) x
。
这是我的审判:
map (f.g.h) x
-> map (f.g.h) $ x -- OK, no benefit
-> map $ f.g.h $ x -- wrong as map doesn't take one parameter
-> (map $ f.g.h) x -- Ok, no benefit, ugly :-)
我发现的唯一优雅的选择是使用
negate . sum . tail <$> [[1..5], [3..6]]]
但我想确保我没有跳过上面的一些选项。 谢谢
怎么样?
let u = f.g.h in map u x
没有括号,没有$
如果定义功能
map (f.g.h) x
因此,您可以使用f . g . h
处理x
每个元素f . g . h
f . g . h
f . g . h
,这意味着我们首先对其应用h
,然后对结果应用g
,最后对该结果应用f
。
但是我们也可以使用三个单独的map
,例如:
map f $ map g $ map h x
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.