一个简单的例子如下:
val set = Set(0, 1, 2)
Stream.from(0).filterNot(set).head
它似乎永远循环; 但以下代码有效:
Stream.from(0).filter(!set(_)).head
我正在使用
Scala code runner version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL
这是一个错误吗?或任何原因?
答案 0 :(得分:4)
根据票证:https://issues.scala-lang.org/browse/SI-8627适用于Streams的filterNot的实现并不是懒惰的,这将在您所看到的内容中体现出来。
所以,似乎是一个错误并且根据故障单,没有找到修复它的方法没有对其他集合的重大性能损失或者打破二进制兼容性,因此它似乎针对主要版本(2.12) )