优雅的方法来减去每个列表元素的数量

时间:2016-12-16 09:54:52

标签: haskell

我最近遇到了以下问题:给定一个数字列表,我想从该列表的每个条目中减去一个常量。自然但错误的事情是

map (-3) [5,6,7]

这里-不是二元函数,而是一元否定运算符。

我找到了以下解决方法:

map (+(-3)) [5,6,7]
map ((+)(-3)) [5,6,7]
map (flip (-) 3) [5,6,7]

问题:是否有更多优雅的方式来避免这种不必要的括号?

1 个答案:

答案 0 :(得分:2)

不,抱歉。您拥有subtract功能,但它不会更短。

Prelude> map (subtract 3) [3,4,5]
[0,1,2]