Путаница в Scala Stream

Выполняется:

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)

Не могли бы вы мне это объяснить?

5
задан Didier Dupont 15 December 2011 в 21:42
поделиться