¿Por qué no puedo definir una variable recursivamente en un bloque de código?¿Por qué no puedo definir una variable recursivamente en un bloque de código?
scala> {
| val test: Stream[Int] = 1 #:: test
| }
<console>:9: error: forward reference extends over definition of value test
val test: Stream[Int] = 1 #:: test
^
scala> val test: Stream[Int] = 1 #:: test
test: Stream[Int] = Stream(1, ?)
lazy
palabra clave resuelve este problema, pero no puedo entender por qué funciona sin un bloque de código, pero arroja un error de compilación en un bloque de código.
El último ejemplo no se compila. (Lo que por supuesto es el punto en cuestión). – Debilski
@Debilski: Tiene razón, con 2.10 ya no compila. Usé 2.9.0 para hacer que compile como se menciona en el informe de error. – sschaef
Estaba usando 2.9.1-1. Así que debe haber sido cambiado en el medio. – Debilski