extremes<T> function

List<num> extremes<T>(
  1. Iterable<T> list,
  2. num call(
    1. T
    )
)

Implementation

List<num> extremes<T>(Iterable<T> list, num Function(T) call) {
  if (list.isEmpty) {
    return [0, 0];
  }
  T first = list.first;
  num minValue = call(first);
  num maxValue = call(first);

  for (var ele in list) {
    num v = call(ele);
    minValue = math.min(minValue, v);
    maxValue = math.max(maxValue, v);
  }
  return [minValue, maxValue];
}