¿Qué es la Recursividad en Programación?
El concepto de llamarse a sí mismo
En el desarrollo de software, existen diferentes formas de resolver una tarea que requiere repetición. Lo más tradicional es usar bucles (como for o while). Sin embargo, existe una técnica muy elegante, ideal para recorrer estructuras de datos complejas, llamada Recursividad.
En términos simples, una función recursiva es aquella que se llama a sí misma dentro de su propio código. Es una estrategia perfecta para resolver problemas que se pueden dividir en subproblemas más pequeños, como recorrer un árbol de carpetas, procesar objetos anidados o trabajar con el DOM.
La recursividad apila funciones una sobre otra en la memoria; sin una condición de corte, la torre se derrumba (Stack Overflow).
La Pila de Llamadas (Call Stack)
Para entender cómo funciona la recursividad, hay que mirar cómo el motor del lenguaje administra la memoria.
Cada vez que el programa ejecuta una función, anota esa tarea en una estructura gestionada por el runtime conocida como Call Stack (Pila de llamadas). La primera función que se ejecuta se coloca en el fondo de la pila, y si esa función llama a otra, la nueva tarea se apila por encima. La última llamada es la primera en completarse (LIFO: Last In, First Out). Cuando una función termina, se retira de la pila.
La Condición de Corte (Caso Base)
El secreto de una arquitectura recursiva sólida es que siempre debe tener una condición de corte o caso base. Es una regla estricta (generalmente un if) que le indica a la función: "Si ya alcanzaste este punto, dejá de llamarte a vos misma y empezá a devolver los resultados".
Sin esta validación, la función no tiene forma de saber cuándo terminar su trabajo y empezar a desandar el camino.
El desbordamiento de pila
¿Qué pasa si olvidamos programar esa condición de corte? La función entra en un ciclo infinito. Se llama a sí misma, ocupa un espacio en la pila, se vuelve a llamar, ocupa otro espacio, y así sucesivamente hasta agotar el límite de la pila.
Como la estructura de memoria tiene un límite, llega un momento en que no hay más espacio para apilar tareas. El motor colapsa y el programa arroja un error fatal: Stack Overflow (Desbordamiento de pila).
Dominar la recursividad es dar un gran paso en la lógica de programación. Es una herramienta poderosa que permite escribir código más declarativo, siempre y cuando recordemos que todo ciclo necesita un final claro para mantener la estabilidad del sistema.


