# takeWhile method

Iterable<E> takeWhile (bool test(E element))

Returns 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

    Iterable<E> takeWhile(bool test(E element)) {
      return new TakeWhileIterable<E>(this, test);
    }