scala Stream :: filterNot不懒惰

时间:2015-05-31 08:30:23

标签: scala

一个简单的例子如下:

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

这是一个错误吗?或任何原因?

1 个答案:

答案 0 :(得分:4)

根据票证:https://issues.scala-lang.org/browse/SI-8627适用于Streams的filterNot的实现并不是懒惰的,这将在您所看到的内容中体现出来。

所以,似乎是一个错误并且根据故障单,没有找到修复它的方法没有对其他集合的重大性能损失或者打破二进制兼容性,因此它似乎针对主要版本(2.12) )