juxt

Aplica todas las funciones de una lista al mismo valor y recoge los resultados.

List<R> Function(T a) juxt<T, R>(List<R Function(T a)> fns)

Lección

Dale a juxt una lista de funciones que acepten todas la misma entrada, y te devuelve una única función que pasa esa entrada por cada una de ellas y devuelve una List con los resultados, en orden. Es una forma compacta de calcular varias vistas independientes de un mismo valor sin repetirte.

El juxt de FxTS es variádico y admite funciones con distinto número de argumentos. Dart no tiene genéricos variádicos, así que la versión de FxDart toma una sola función unaria T -> R por entrada — suficiente para cubrir el caso habitual de «aplica estas N proyecciones de solo lectura a este valor».

Demo 1 · Fundamentos

El ejemplo clásico del dartdoc: calcular el mínimo y el máximo de una lista en una sola pasada:

Demo 2 · Proyectar varios campos

Extraer varios campos de un Map con forma de registro de una vez:

Pruébalo tú

Ejercicio: usa juxt para calcular sum y average de esta lista en una sola pasada.

Relacionado: apply — llama a una función con una lista de argumentos dinámica · cases — elige una función según un predicado en vez de ejecutarlas todas · min / max — usadas juntas en la demo de arriba · zip — combina valores de dos secuencias en vez de una