gpt4 book ai didi

scala - 使用其他列表中的元素作为参数对一个列表中的每个元素应用函数?

转载 作者:行者123 更新时间:2023-12-04 23:28:45 25 4
gpt4 key购买 nike

我不知道如何称呼它,但我想要这样的东西。

val x = List(1,2,3,...)
val y = List(4,5,6,...)
//want a result of List(1+4, 5+6, 7+8,...)

有没有一种简单的方法可以在 Scala 中做到这一点?我当前的实现涉及使用从 0 到 x.lenght 的循环,这非常难看。如果可能的话,我想要一个可以使用超过 n 个列表的解决方案,并且可能在 + 旁边使用其他类型的运算符。

谢谢 !

最佳答案

回应“如果我有超过 3 个列表怎么办?”:

def combineAll[T](xss: Seq[T]*)(f: (T, T) => T) = 
xss reduceLeft ((_,_).zipped map f)

像这样使用:
scala> combineAll(List(1,2,3), List(2,2,2), List(4,5,6), List(10,10,10))(_+_)
res5: Seq[Int] = List(17, 19, 21)

编辑:或者
def combineAll[T](xss: Seq[T]*)(f: (T, T) => T) = 
xss.transpose map (_ reduceLeft f)

做同样的事情,可能更有效。

关于scala - 使用其他列表中的元素作为参数对一个列表中的每个元素应用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8322191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com