5
運行:斯卡拉流混亂
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`返回一個列表? – sepp2k 2011-12-15 21:38:48
讓我困惑的是,爲什麼地球上你會想要在一個懶惰的val的定義裏面放一個'println`。 – 2011-12-16 00:28:49