2016-11-29 34 views
0

我有以下:更簡潔的方式來定義Scala Stream對象?

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

如果5L被移除,一個StackOverflow被髮射。有沒有辦法讓尾部計算工作,以便不必指定5L

回答

5

當您刪除5L然後調用tail函數時,您正在進入無限循環。正如你所看到的,notDivisibleBy2的尾部是notDivisibleBy2.tail.map(_ + 2)。因此,您需要刪除5L以及致電tail

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