summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/Iterator.scala
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-10 10:47:23 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-10 10:47:23 +0000
commitbc55c7854ca96ced47aa05ca85039df28fe61509 (patch)
tree408d5a910375d374e8274fff996b8c9c929fa443 /src/library/scala/collection/Iterator.scala
parent92132d6efd281cbbd7dcfcb2853d4d9183370d45 (diff)
downloadscala-bc55c7854ca96ced47aa05ca85039df28fe61509.tar.gz
scala-bc55c7854ca96ced47aa05ca85039df28fe61509.tar.bz2
scala-bc55c7854ca96ced47aa05ca85039df28fe61509.zip
Fixes #4054.
No review.
Diffstat (limited to 'src/library/scala/collection/Iterator.scala')
-rw-r--r--src/library/scala/collection/Iterator.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala
index 5238a66f70..e2252d5aab 100644
--- a/src/library/scala/collection/Iterator.scala
+++ b/src/library/scala/collection/Iterator.scala
@@ -429,6 +429,17 @@ trait Iterator[+A] extends TraversableOnce[A] {
}
}
+ def scanLeft[B](z: B)(op: (B, A) => B): Iterator[B] = new Iterator[B] {
+ var hasNext = true
+ var elem = z
+ def next() = if (hasNext) {
+ val res = elem
+ if (self.hasNext) elem = op(elem, self.next())
+ else hasNext = false
+ res
+ } else Iterator.empty.next()
+ }
+
/** Takes longest prefix of values produced by this iterator that satisfy a predicate.
* @param p The predicate used to test elements.
* @return An iterator returning the values produced by this iterator, until