Cómo crear funciones recursivas en Clojure – Resuelto

La recursión es una técnica común en Clojure, donde una función se llama a sí misma para resolver problemas. Es fundamental comprender cómo escribir funciones recursivas para procesar listas, árboles o estructuras más complejas.

Función recursiva simple

Un ejemplo básico de recursión es la función factorial:

(defn factorial [n] (if (zero? n) 1 (* n (factorial (dec n)))))

Usar recursión con acumuladores

La recursión de cola es una forma optimizada de recursión donde se utiliza un acumulador para mejorar la eficiencia:

(defn factorial-acc [n acc] (if (zero? n) acc (factorial-acc (dec n) (* acc n))))