【发布时间】:2017-04-04 18:26:49
【问题描述】:
我想改变这个:
add a b =
a + b
List.map2 add [1,2] [3,4]
这样的:
List.map2 (\(a , b ) -> a + b) [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]
【讨论】: