rollup<T, K, R> function
Rolls up elements by a key function and reduces each group.
Implementation
Map<K, R> rollup<T, K, R>(
Iterable<T> iterable,
K Function(T) key,
R Function(List<T>) reduce,
) {
final groups = group(iterable, key);
return groups.map((k, v) => MapEntry(k, reduce(v)));
}