min

El número más pequeño del pipeline, con las rarezas exactas de FxTS ante entradas vacías y NaN.

num min(Iterable<num> iterable) Future<num> minAsync(FxAsyncIterable<num> iterable) num Fx<num>.min() // chain (sync) Future<num> FxAsync<num>.min() // chain (async)

Lección

min es un fold terminal, solo numérico: internamente es fold(double.infinity, ..., iterable), y compara cada elemento contra un mínimo acumulado que empieza en +infinity.

Merece la pena memorizar dos comportamientos, porque sorprenden a quien viene de una API «segura» y están portados fielmente desde FxTS:

Si lo que necesitas es la semántica «el más pequeño, o null si está vacío», comprueba tú mismo result.isInfinite, o recurre a find / reduce con tu propio comparador.

Demo 1 · Fundamentos, vacío y NaN

Demo 2 · Asíncrono

Pruébalo tú

Ejercicio: encuentra el precio más barato entre los productos.

Relacionado: max — la imagen especular · sum · average — los otros terminales numéricos · find — para una búsqueda del «menor que coincide» a prueba de nulls