Cómo usar mapcat en Clojure – Resuelto

La función mapcat en Clojure combina los efectos de map y concat. Aplica una función a cada elemento de una colección y luego concatena los resultados.

Uso básico de mapcat

Podemos usar mapcat para transformar una colección de colecciones en una sola colección. Por ejemplo, para generar una lista con números:

(mapcat #(range % (+ % 3)) [1 5 9]) ;; (1 2 3 5 6 7 9 10 11)

Combinación de secuencias con mapcat

En este ejemplo, mapcat toma cada número de la lista, genera una secuencia con tres elementos a partir de él, y concatena todas las secuencias generadas:

(mapcat #(range % (+ % 2)) [3 6]) ;; (3 4 6 7)