如何在多种情况下使用地图

时间:2019-11-17 18:44:15

标签: haskell

是否可以将map与乘法条件一起使用。例如list [1,-2,3,-4] 对于所有+1应该是<0,对于*2>0

2 个答案:

答案 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]