average
La media de todos los números que produce el pipeline — NaN cuando no hay ninguno.
Lección
average es un operador terminal que recorre el pipeline
entero una sola vez, llevando a la vez un total y un contador
acumulados, y luego divide. Siempre devuelve un double,
incluso para una lista de int normales.
El comportamiento que conviene interiorizar es este: el
average de un iterable vacío es
double.nan; está calculando 0 / 0, no lanza una
excepción ni recurre por defecto a 0. Esto refleja exactamente lo
que hace FxTS. Si tu pipeline puede quedar vacío, compruébalo de forma
explícita (result.isNaN) en lugar de dar por hecho un valor
numérico de reserva.
Igual que sum, la forma encadenada se
expone mediante una extensión sobre Fx<num> /
FxAsync<num>, así que solo está disponible cuando el
compilador puede ver que el tipo de elemento de tu cadena es numérico.
Demo 1 · Fundamentos & el caso vacío
Demo 2 · Asíncrono
Pruébalo tú
Ejercicio: promedia solo las notas aprobadas (>= 60).