AD

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

Ver cursos de Kotlin en Udemy

Enlace de afiliado. No te cuesta nada extra.

🎯Lecciones de Kotlin
Lección 12 / 68

Funciones recursivas

En esta lección escribirás una función que se llama a sí misma.

Hacen falta dos piezas: un caso base que corta la cadena, y una llamada a sí misma con un problema más pequeño.

El código de ejemplo calcula el factorial. El caso base es n <= 1.

Sin caso base, el programa se detiene con StackOverflowError. En la JVM la profundidad práctica ronda los pocos miles de llamadas.

Kotlin ofrece algo que Java no tiene: el modificador tailrec. Si la llamada recursiva es lo último que hace la función, el compilador la convierte en un bucle y desaparece el límite de pila. Y si escribes tailrec sobre una función que no cumple la condición, el compilador te avisa en lugar de callarse — que es justo lo que hace útil la marca.

Ten en cuenta además que Int tiene 32 bits: el factorial de 13 ya se sale del rango. Kotlin, como Java, da la vuelta en silencio en lugar de detenerse, así que el resultado sale negativo sin ningún aviso — al contrario que Swift, que se detiene. Para números grandes hay que usar Long o BigInteger.

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

🧪 Este sitio no puede compilar ni ejecutar Kotlin 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)