带有 lambda 的榆树中的 Map2

Map2 in elm with lambda

我想改变这个:

add a b =
    a + b


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

像这样:

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

可能吗?

是的,您遇到的问题是您的 lambda 被定义为接受 (a, b) 的元组而不是两个参数。这就是您要写的内容(注意 lambda 参数中缺少括号和逗号):

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

因为有两个参数,而 + 有两个参数,您可以利用将中缀运算符括在括号中将它们变成常规函数的能力(如 the docs 所示) ,并通过这样写来简化它:

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