Почему я не могу определить переменную рекурсивно в кодовом блоке?
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
ключевое слово решает эту проблему, но я не могу понять, почему он работает без кода, но генерирует ошибку компиляции в блоке кода.