takeWhile method
Creates a lazy iterable of the leading elements satisfying test
.
The filtering happens lazily. Every new iterator of the returned
iterable starts iterating over the elements of this
.
The elements can be computed by stepping through iterator until an
element is found where test(element)
is false. At that point,
the returned iterable stops (its moveNext()
returns false).
Implementation
@override
Iteration<E> takeWhile(bool Function(E value) test) {
int count = length;
for (int i=0; i<length; i++) {
if (!test(elementAt(i))) {
count = i;
break;
}
}
return take(length - count);
}