1

对于课程的第一个作业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 ,但这看起来不是很标量,我想知道是否有内置函数来实现这一点。

4

3 回答 3

9

除了zip,标准库还提供zipped了避免解构任何元组的需要:

(l1, l2).zipped.map(_ + _)

于 2012-09-22T17:41:21.293 回答
6

您可以像往常一样在地图中压缩它们并执行添加:

l1.zip(l2).map(x => x._1 + x._2)
于 2012-09-22T16:50:17.053 回答
1

这可能比 @om-nom-nom 的代码更 Scalaish。尽管随着语言的发展,Scala 还很年轻,所以实际上仍然存在关于什么Scalaish什么不是Scalaish 的争论:

l1 zip l2 map { case (a, b) => a + b }
于 2012-09-22T17:33:00.370 回答