Scala 中的 LazyList 和 Stream 有什么区别?

Mic*_*ael 9 scala stream lazylist scala-collections

我注意到它Stream已被弃用Scala 2.13,他们建议使用LazyList. 他们还说“使用 LazyList(完全懒惰)而不是 Stream(只有一个懒惰的尾巴)”。
它到底是什么意思?他们为什么弃用Stream

Mar*_*lic 8

NthPortal 的贡献者LazyList,在更新和改进 LazyList 文档#7842 中说明

LazyListand之间的主要区别Stream- 以及它的主要特征 - 是它是否懒惰是懒惰地评估的。我不确定如何最好地传达这一点。

jwvh 在相关问题中指出

Stream除了第一个(头)元素外,其他元素都是惰性实现的。这被视为一种缺陷。

Scala 2.13 发行说明状态

immutable.LazyList替换immutable.Stream. Stream有不同的懒惰行为,现在已弃用。( #7558 , #7000 )