0
val notDivisibleBy2: Stream[Long] = 3L #:: 5L #:: notDivisibleBy2.tail.map(_ + 2)
println(notDivisibleBy2.take(3))
如果5L
被移除,一個StackOverflow
被髮射。有沒有辦法讓尾部計算工作,以便不必指定5L
?
val notDivisibleBy2: Stream[Long] = 3L #:: 5L #:: notDivisibleBy2.tail.map(_ + 2)
println(notDivisibleBy2.take(3))
如果5L
被移除,一個StackOverflow
被髮射。有沒有辦法讓尾部計算工作,以便不必指定5L
?
當您刪除5L
然後調用tail
函數時,您正在進入無限循環。正如你所看到的,notDivisibleBy2
的尾部是notDivisibleBy2.tail.map(_ + 2)
。因此,您需要刪除5L
以及致電tail
。
val notDivisibleBy2: Stream[Long] = 3L #:: notDivisibleBy2.map(_ + 2)