span method

Tuple2<Iterable<T>, Iterable<T>> span(
  1. Predicate<T> p
)

Split list based on predicate p. (takeWhile p, dropWhile p)

Implementation

Tuple2<Iterable<T>, Iterable<T>> span(Predicate<T> p) {
  final i = indexWhere((e) => !p(e));
  final idx = i < 0 ? length : i;
  return Tuple2(getRange(0, idx), getRange(idx, length));
}