【发布时间】:2011-12-15 21:14:03
【问题描述】:
跑步:
lazy val s: Stream[Int] = 1 #:: 2 #:: {val x = s.tail.map(_+1); println("> " + x.head); x}
s.take(5).toList
我希望:
> List(2, 3)
> List(2, 3, 4)
List(1, 2, 3, 4, 5)
我得到:
> 3
List(1, 2, 3, 4, 5)
你能给我解释一下吗?
【问题讨论】:
-
您为什么希望
x.head返回一个列表? -
让我感到困惑的是,你到底为什么要在惰性 val 的定义中添加
println。 -
@Dan:我想知道表达式执行的时间和频率(以及执行时的各种值)。
标签: scala recursion stream tail