Scala: Streams não agindo com preguiça?
Eu sei que os riachos devem ser seqüências avaliadas preguiçosamente em Scala, mas acho que estou sofrendo de algum tipo de mal-entendido fundamental, porque elas parecem estar mais ansiosas do que eu esperava.
Neste exemplo:
val initial = Stream(1)
lazy val bad = Stream(1/0)
println((initial ++ bad) take 1)
Eu recebo umjava.lang.ArithmeticException
, que parece ser causa pela divisão zero. Eu esperaria quebad
nunca seria avaliado, uma vez que pedi apenas um elemento do fluxo. O que há de errado?