zip<T> function
Returns an Iterable of Lists where the nth element in the returned
iterable contains the nth element from every Iterable in iterables
. The
returned Iterable is as long as the shortest Iterable in the argument. If
iterables
is empty, it returns an empty list.
Implementation
Iterable<List<T>> zip<T>(Iterable<Iterable<T>> iterables) sync* {
if (iterables.isEmpty) return;
final iterators = iterables.map((e) => e.iterator).toList(growable: false);
while (iterators.every((e) => e.moveNext())) {
yield iterators.map((e) => e.current).toList(growable: false);
}
}