考虑以下:
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))
}