diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2011-01-10 10:47:23 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2011-01-10 10:47:23 +0000 |
commit | bc55c7854ca96ced47aa05ca85039df28fe61509 (patch) | |
tree | 408d5a910375d374e8274fff996b8c9c929fa443 /src | |
parent | 92132d6efd281cbbd7dcfcb2853d4d9183370d45 (diff) | |
download | scala-bc55c7854ca96ced47aa05ca85039df28fe61509.tar.gz scala-bc55c7854ca96ced47aa05ca85039df28fe61509.tar.bz2 scala-bc55c7854ca96ced47aa05ca85039df28fe61509.zip |
Fixes #4054.
No review.
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/collection/Iterator.scala | 11 |
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 |