对于课程的第一个作业https://www.coursera.org/course/progfun 我想做以下
val l1 = List(1,2,3)
val l2 = List(4,5,6)
val lSum = l1.someOperation(l2)
RES: lSum=List(5,7,9)
我可以用循环实现 someOperation ,但这看起来不是很标量,我想知道是否有内置函数来实现这一点。
对于课程的第一个作业https://www.coursera.org/course/progfun 我想做以下
val l1 = List(1,2,3)
val l2 = List(4,5,6)
val lSum = l1.someOperation(l2)
RES: lSum=List(5,7,9)
我可以用循环实现 someOperation ,但这看起来不是很标量,我想知道是否有内置函数来实现这一点。
除了zip
,标准库还提供zipped
了避免解构任何元组的需要:
(l1, l2).zipped.map(_ + _)
您可以像往常一样在地图中压缩它们并执行添加:
l1.zip(l2).map(x => x._1 + x._2)
这可能比 @om-nom-nom 的代码更 Scalaish。尽管随着语言的发展,Scala 还很年轻,所以实际上仍然存在关于什么是Scalaish什么不是Scalaish 的争论:
l1 zip l2 map { case (a, b) => a + b }