Выполняется:
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)
Не могли бы вы мне это объяснить?