Cómo usar recur en funciones recursivas – Resuelto

recur es una herramienta clave en Clojure para implementar recursión segura y evitar desbordamientos de pila. Este artículo explica su uso detallado.

¿Qué es recur?

recur reinicia una función o un bucle sin consumir más espacio en la pila. Ideal para iteraciones en lugar de bucles tradicionales.

Ejemplo básico

Calculemos la suma de una lista de números:

(defn suma [nums total] (if (empty? nums) total (recur (rest nums) (+ total (first nums))))) (suma [1 2 3 4] 0) ;; 10

Reglas para usar recur

Debe ser la última expresión en la función, garantizando que no se acumule estado en la pila.

Conclusión

recur hace que la recursión sea eficiente y segura en Clojure. Úsalo para optimizar tus algoritmos recursivos.