是否可以将map
与乘法条件一起使用。例如list [1,-2,3,-4]
对于所有+1
应该是<0
,对于*2
是>0
?
答案 0 :(得分:5)
map
本身只能对列表的每个元素应用相同的功能,但是 function 可以决定如何对每个元素进行操作。
例如,如果我们编写一个将所有奇数加倍并将所有偶数加100的函数:
myFunc x | odd x = 2 * x
| otherwise = 100 + x
我们可以使用map
应用该功能:
> map myFunc [1..4]
[2,102,6,104]
答案 1 :(得分:2)
以下内容有点丑陋,但可行:
map (\x -> if x < 0 then x+1 else x*2) [1,-2,3,-4,0]