更简洁的方式来定义Scala Stream对象?

时间:2016-11-29 18:49:20

标签: scala stream

我有以下内容:

val notDivisibleBy2: Stream[Long] = 3L #:: 5L #:: notDivisibleBy2.tail.map(_ + 2)
println(notDivisibleBy2.take(3))

如果删除5L,则会发出StackOverflow。有没有办法让尾部计算工作,以便不必指定5L

1 个答案:

答案 0 :(得分:5)

当您移除5L然后调用tail函数时,您将进入无限循环。如您所见,notDivisibleBy2的尾部是notDivisibleBy2.tail.map(_ + 2)。因此,您需要删除5Ltail的调用。

val notDivisibleBy2: Stream[Long] = 3L #:: notDivisibleBy2.map(_ + 2)