Самый краткий способ объединения элементов последовательности

Допустим, у нас есть две последовательности, и мы, и мы хотите объединить их, используя какой-то метод

val a = Vector(1,2,3)
val b = Vector(4,5,6)

, например, сложение может быть

val c = a zip b map { i => i._1 + i._2 }

или

val c = a zip b map { case (i, j) => i + j }

Повторение во второй части заставляет меня думать, что это должно быть возможно за одну операцию. Я не вижу встроенного метода для этого.Я полагаю, что мне действительно нужен метод zip, который пропускает создание и извлечение кортежей.

Есть ли более красивый / лаконичный способ в простом Scala или, может быть, с помощью Scalaz? Если нет, то как бы вы написали такой метод и добавили его к последовательностям, чтобы я мог написать что-то вроде

val c = a zipmap b (_+_)
7
задан Luigi a.k.a. Rhys 15 August 2011 в 16:59
поделиться