複数の値を返す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)
どんなアイデアでも大歓迎です。ありがとう!