【发布时间】:2012-11-04 19:52:49
【问题描述】:
我知道在 Scala 中流应该是惰性求值的序列,但我认为我遇到了某种根本性的误解,因为它们似乎比我预期的更热切。
在这个例子中:
val initial = Stream(1)
lazy val bad = Stream(1/0)
println((initial ++ bad) take 1)
我得到一个java.lang.ArithmeticException,这似乎是由零除法引起的。我希望bad 永远不会被评估,因为我只要求流中的一个元素。怎么了?
【问题讨论】:
标签: scala stream lazy-evaluation