永远转置无限流循环

2024-01-02

考虑以下:

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

你会期望得到相当于:

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

然而,上层构造无限循环。有解决方法吗?这应该被视为一个错误吗?

问题出现讨论这个答案 https://stackoverflow.com/a/17115799/1149944.

EDIT

我知道像这样的函数是可写的,请参见下面的示例。但是图书馆里有东西吗?

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))
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

永远转置无限流循环 的相关文章

随机推荐