4

次の点を考慮してください。

Stream.continually(List(1,2,3)).transpose

次と同等のものを取得することが期待されます。

Stream(
  Stream.continually(1),
  Stream.continually(2),
  Stream.continually(3)
)

ただし、上の構造は無限にループします。これに対する回避策はありますか? これはバグと見なされますか?

この答えについて議論する質問が出てきました。

編集

このような関数が書き込み可能であることはわかっています。次の例を参照してください。でも、図書館に何かありますか?

def myTranspose[A,B](in: Stream[A])
     (implicit asTraversable: A => GenTraversableOnce[B]): Stream[Stream[B]] = {
  val len = asTraversable(in.head).size

  for (i <- (0 until len).toStream)
    yield in.map(el => asTraversable(el).toIndexedSeq(i))
}
4

0 に答える 0