summaryrefslogtreecommitdiff
path: root/test/files/run/streamWithFilter.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-04-07 19:23:08 +0000
committerPaul Phillips <paulp@improving.org>2010-04-07 19:23:08 +0000
commit6dd51419b8a2565db0ef1d6f36cb57b5ef7654cf (patch)
tree37fbdacc88c9c3fde2bc414c145fb5c02d707a0f /test/files/run/streamWithFilter.scala
parent1b098c643a8df4cdb5e6d0fd84619575ed830266 (diff)
downloadscala-6dd51419b8a2565db0ef1d6f36cb57b5ef7654cf.tar.gz
scala-6dd51419b8a2565db0ef1d6f36cb57b5ef7654cf.tar.bz2
scala-6dd51419b8a2565db0ef1d6f36cb57b5ef7654cf.zip
Gave Stream a lazy withFilter implementation.
can have a collection containing all the even numbers in the universe and still be home in time for tea. Threw in some Stream cleanups for free. Closes #3265, review by community.
Diffstat (limited to 'test/files/run/streamWithFilter.scala')
-rw-r--r--test/files/run/streamWithFilter.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/files/run/streamWithFilter.scala b/test/files/run/streamWithFilter.scala
new file mode 100644
index 0000000000..cb919d4f55
--- /dev/null
+++ b/test/files/run/streamWithFilter.scala
@@ -0,0 +1,11 @@
+object Test {
+ val nums = Stream.from(1)
+ def isFizz(x: Int) = x % 3 == 0
+ def isBuzz(x: Int) = x % 5 == 0
+ // next line will run forever if withFilter isn't doing its thing.
+ val fizzbuzzes = for (n <- nums ; if isFizz(n) ; if isBuzz(n)) yield n
+
+ def main(args: Array[String]): Unit = {
+ fizzbuzzes take 5 foreach println
+ }
+}