Scala添加了两个列表的内容

时间:2012-09-22 16:47:51

标签: scala

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

3 个答案:

答案 0 :(得分:9)

除了zip之外,标准库还提供了zipped,这样就无需解构任何元组:

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

答案 1 :(得分:6)

您可以将它们压缩并在地图中执行添加:

l1.zip(l2).map(x => x._1 + x._2)

答案 2 :(得分:1)

这可能比@ om-nom-nom的代码更加Scalaish。虽然随着语言的发展,Scala仍然很年轻,但实际上仍然存在关于实际上 不是 Scalaish的争论:

l1 zip l2 map { case (a, b) => a + b }