実行:私が期待するScalaのストリーム混乱
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
私が混乱しているのは、なぜ、怠惰なvalの定義の中に 'println'を置くのが良いのかということです。 –
@Dan:式が実行される時期と頻度(そしてそのときのさまざまな値がどのようになるか)を知るために、私は想像しています。 – sepp2k