2017-04-04 71 views
2

榆树我想改变这种:地图2与拉姆达

add a b = 
    a + b 


List.map2 add [1,2] [3,4] 

像这样的东西:

List.map2 (\(a , b) -> a + b) [1,2] [3,4] 

可能吗?

回答

4

是的,您遇到的问题是您的lambda被定义为接受(a, b)的元组而不是两个参数。这是你想要写(注意在lambda参数缺少括号和逗号)什么:由于有两个参数

List.map2 (\a b -> a + b) [1,2] [3,4] 

,并+需要两个参数,你可以采取的使缀的能力优势(如the docs所示),并将其细化为如下形式:

List.map2 (+) [1,2] [3,4] 
+0

谢谢!我觉得自己像个白痴:) – Fi3