Cómo utilizar thread-last en Clojure para manipulación de secuencias – Resuelto

La macro ->> o thread-last en Clojure es muy útil para realizar operaciones secuenciales donde cada operación toma el resultado de la anterior como su primer argumento.

Uso básico de thread-last

Con la macro ->>, podemos encadenar operaciones de manera que el resultado de cada paso se pase como el último argumento de la siguiente operación.

(->> [1 2 3 4 5] (map inc) (filter even?))

Este código primero incrementa cada elemento de la lista y luego filtra los números pares, devolviendo (2 4 6).

Ventajas del uso de thread-last

Ejemplo avanzado

Consideremos una secuencia de operaciones más compleja:

(->> (range 1 10) (map #(* % 2)) (filter #(> % 5)) (reduce +))

Este código genera los números del 1 al 9, los multiplica por 2, filtra aquellos mayores que 5 y luego los reduce a su suma total.

Conclusión

El uso de ->> en Clojure puede mejorar la legibilidad y la claridad de tu código, especialmente cuando se trata de operaciones secuenciales sobre colecciones. Es una excelente herramienta para la manipulación de datos de manera declarativa y funcional.