Cómo usar reduce para acumular datos – Resuelto

La función reduce es una herramienta poderosa para procesar colecciones y construir resultados acumulativos en Clojure. Este artículo profundiza en su uso.

¿Qué es reduce?

reduce toma una función, un valor inicial y una colección, aplicando la función de manera acumulativa:

(reduce + 0 [1 2 3 4]) ;; 10

Ejemplo avanzado

Contemos ocurrencias de elementos en una lista:

(reduce (fn [acc x] (update acc x (fnil inc 0))) {} [:a :b :a :c :b]) ;; {:a 2, :b 2, :c 1}

Ventajas

Es más flexible que map o filter, permitiendo cálculos personalizados.

Conclusión

Dominar reduce te permitirá resolver problemas complejos con colecciones en Clojure de forma elegante.