【发布时间】:2016-11-29 18:49:19
【问题描述】:
我有以下几点:
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)
【讨论】: