我有一个函数f,它有两个参数-a:int和b:int f (a:Int, b:Int): Int 我希望在2元组的列表上调用map,这样对于列表中的每个元组(a,b),我希望将其Map到f(a,b)。我该怎么做?谢谢
f (a:Int, b:Int): Int
hpcdzsge1#
有两种方法可以做到这一点。首先,也许对读者来说最清楚的是,您可以在 map :
map
val tuples: List[(Int, Int)] = ??? // code to generate the list tuples.map { case (a, b) => f(a, b) }
第二,可以将函数转换为一个以元组作为输入的函数 .tupled . 用定义的方法 def 必须先转化为函数:
.tupled
def
val tupledF = (f _).tupled val tuples: List[(Int, Int)] = ??? // code to generate the list tuples.map(tupledF)
c2e8gylq2#
你可以这样做 l.map { case (a,b) => f(a,b) } . 或者一个聪明的方法: l.map((f _).tupled)
l.map { case (a,b) => f(a,b) }
l.map((f _).tupled)
2条答案
按热度按时间hpcdzsge1#
有两种方法可以做到这一点。
首先,也许对读者来说最清楚的是,您可以在
map
:第二,可以将函数转换为一个以元组作为输入的函数
.tupled
. 用定义的方法def
必须先转化为函数:c2e8gylq2#
你可以这样做
l.map { case (a,b) => f(a,b) }
. 或者一个聪明的方法:l.map((f _).tupled)