de reproducción:Scala corriente confusión
lazy val s: Stream[Int] = 1 #:: 2 #:: {val x = s.tail.map(_+1); println("> " + x.head); x}
s.take(5).toList
yo esperaría:
> List(2, 3)
> List(2, 3, 4)
List(1, 2, 3, 4, 5)
y me sale:
> 3
List(1, 2, 3, 4, 5)
Podría explicar a mí?
¿Por qué esperar 'x.head' para devolver una lista? – sepp2k
Lo que me confunde es por qué querría poner un 'println' dentro de la definición de un val perezoso. –
@Dan: Para saber cuándo y con qué frecuencia se ejecutará la expresión (y cuáles serán los diversos valores cuando lo haga), me imagino. – sepp2k