在榆树的Map2与lambda

时间:2017-04-04 18:26:50

标签: lambda elm anonymous

我想改变这个:

add a b =
    a + b


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

有这样的事情:

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

可能的?

1 个答案:

答案 0 :(得分:4)

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

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

由于有两个参数,+有两个参数,你可以利用通过将中缀运算符括在括号中来使中缀运算符成为常规函数的能力(如the docs所示),通过写下这样来减少这个:

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