Каков самый элегантный способ векторизации функции scala, которая возвращает несколько значений?
Например, предположим, что у меня есть функция:
def Foobar(foo: Int, bar: Int): (Int, Int) = (foo, bar)
Если бы он возвращал одно значение, я бы сделал что-то вроде этого:
val a = Array(1, 2, 3)
val b = Array(4, 5, 6)
val c = (a,b).zipped.map(foobar)
Но поскольку он возвращает кортеж, я получаю Array[(Int,Int)]
, тогда как я бы предпочел (Array[Int], Array[Int])
. Каков правильный способ сделать что-то подобное? Есть ли какие-нибудь умные шаблоны для обобщения этого до чего-то вроде этого:
val c = vectorized(foobar,a,b)
Любые идеи будут высоко оценены. Спасибо!