2017-04-04 70 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