summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-09-25 13:00:12 -0700
committerPaul Phillips <paulp@improving.org>2012-09-25 18:06:07 -0700
commit93c631ede973a8d05c7fb251e92f1646bc3bc326 (patch)
treefa700d97073a978fd973b99ade3df7a19a0d7dd0 /src
parent636ea436d7f316837db5ba777265b2c4eaf92891 (diff)
downloadscala-93c631ede973a8d05c7fb251e92f1646bc3bc326.tar.gz
scala-93c631ede973a8d05c7fb251e92f1646bc3bc326.tar.bz2
scala-93c631ede973a8d05c7fb251e92f1646bc3bc326.zip
Added exists3 to fast collections.
Diffstat (limited to 'src')
-rw-r--r--src/reflect/scala/reflect/internal/util/Collections.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/util/Collections.scala b/src/reflect/scala/reflect/internal/util/Collections.scala
index 14b5d3003d..201b4dfe0a 100644
--- a/src/reflect/scala/reflect/internal/util/Collections.scala
+++ b/src/reflect/scala/reflect/internal/util/Collections.scala
@@ -175,6 +175,20 @@ trait Collections {
}
false
}
+ final def exists3[A, B, C](xs1: List[A], xs2: List[B], xs3: List[C])(f: (A, B, C) => Boolean): Boolean = {
+ var ys1 = xs1
+ var ys2 = xs2
+ var ys3 = xs3
+ while (!ys1.isEmpty && !ys2.isEmpty && !ys3.isEmpty) {
+ if (f(ys1.head, ys2.head, ys3.head))
+ return true
+
+ ys1 = ys1.tail
+ ys2 = ys2.tail
+ ys3 = ys3.tail
+ }
+ false
+ }
final def forall2[A, B](xs1: List[A], xs2: List[B])(f: (A, B) => Boolean): Boolean = {
var ys1 = xs1
var ys2 = xs2