我有以下内容:
val notDivisibleBy2: Stream[Long] = 3L #:: 5L #:: notDivisibleBy2.tail.map(_ + 2)
println(notDivisibleBy2.take(3))
如果删除5L
,则会发出StackOverflow
。有没有办法让尾部计算工作,以便不必指定5L
?
答案 0 :(得分:5)
当您移除5L
然后调用tail
函数时,您将进入无限循环。如您所见,notDivisibleBy2
的尾部是notDivisibleBy2.tail.map(_ + 2)
。因此,您需要删除5L
和tail
的调用。
val notDivisibleBy2: Stream[Long] = 3L #:: notDivisibleBy2.map(_ + 2)