Middle
¿Qué es una función con recursión de cola (tailrec) en Kotlin?
sobes.tech AI
Respuesta de la IA
La función con recursión de cola (tailrec) en Kotlin es una función recursiva donde la llamada recursiva es la última operación en el cuerpo de la función. Esto permite que el compilador optimice las llamadas, transformando la recursión en un ciclo, lo que previene el desbordamiento de pila.
Para indicar tal función se usa el modificador tailrec. Si la función no cumple con los requisitos de recursión de cola, el compilador generará un error.
Ejemplo de recursión de cola para calcular el factorial:
tailrec fun factorial(n: Int, acc: Int = 1): Int {
return if (n <= 1) acc else factorial(n - 1, acc * n)
}
Aquí, la llamada recursiva factorial(n - 1, acc * n) es la última en la función, lo que permite optimizar la llamada.