Sobes.tech
Middle

O que é uma função com recursão de cauda (tailrec) em Kotlin?

sobes.tech IA

Resposta da IA

A função com recursão de cauda (tailrec) em Kotlin é uma função recursiva onde a chamada recursiva é a última operação no corpo da função. Isso permite ao compilador otimizar as chamadas, transformando a recursão em um ciclo, o que evita o estouro de pilha.

Para indicar tal função, usa-se o modificador tailrec. Se a função não atender aos requisitos de recursão de cauda, o compilador emitirá um erro.

Exemplo de recursão de cauda para calcular o fatorial:

tailrec fun factorial(n: Int, acc: Int = 1): Int {
    return if (n <= 1) acc else factorial(n - 1, acc * n)
}

Aqui, a chamada recursiva factorial(n - 1, acc * n) é a última na função, permitindo otimizar a chamada.