tee3
Tres folds sobre una pasada de la fuente: tee con una reducción más.
Lección
tee3 es tee con un tercer
fold. Todo lo que explica la página de
tee sigue valiendo igual: cada
elemento hace avanzar todos los acumuladores antes de tirar del
siguiente, así que la fuente se recorre exactamente una vez y no se
almacena nada; los acumuladores son independientes y no tienen por qué
compartir tipo; y los lectores han de ser folds, no pipelines. Lee esa
página primero para el razonamiento y para saber cuándo
fork es la mejor herramienta.
Dart no tiene genéricos variádicos, así que cada aridad es su propia
función — la misma razón por la que a
zip le acompaña zip3. Dos
y tres cubren los casos que merecen nombre; más allá, reduce a un pequeño
record o clase tuya y usa fold a
secas.
Demo · Total, pico y cuenta con una sola lectura
sensor() cuenta sus propios valores. Tres pasadas separadas
dejarían reads en 18; tee3 lo deja en 6: