AD

¿Ya dominas lo básico? Un curso estructurado de Ruby es la vía rápida para dar el salto.

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
Lección 12 / 68

Funciones recursivas

En esta lección escribirás un método que se llama a sí mismo.

Una función recursiva necesita dos cosas: un caso base que corta la cadena, y una llamada a sí misma con un problema más pequeño. Sin el caso base, la cadena no acaba nunca.

El código de ejemplo calcula el factorial. El caso base es n <= 1, y cada llamada multiplica por el factorial de n - 1.

Si te falta el caso base verás SystemStackError: stack level too deep. Es el equivalente en Ruby al desbordamiento de pila, y en el 95 % de los casos significa exactamente eso: la condición de parada no está o nunca se cumple. Conviene saber además que Ruby no optimiza la recursión de cola por defecto, así que la profundidad tiene un límite práctico de unos pocos miles de llamadas.

Por eso, en la práctica la recursión se reserva para lo que es recursivo por naturaleza: recorrer carpetas dentro de carpetas, navegar por un JSON anidado, recorrer un árbol de comentarios. Para contar hasta un millón, un bucle.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Ruby directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)