pairwise method

List<(E, E)> pairwise()

Returns consecutive pairs from the iterable.

Example: [1, 2, 3] => [(1, 2), (2, 3)]

Implementation

List<(E, E)> pairwise() {
  final iterator = this.iterator;
  if (!iterator.moveNext()) return [];
  var previous = iterator.current;
  final pairs = <(E, E)>[];
  while (iterator.moveNext()) {
    final current = iterator.current;
    pairs.add((previous, current));
    previous = current;
  }
  return pairs;
}