带有 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]
我想改变这个:
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]