`tailrec` prosi kompilator o zamianę rekurencji ogonowej na pętlę (bez rosnącego stosu wywołań). Działa tylko dla bezpośredniej rekurencji, gdzie wywołanie rekurencyjne jest ostatnią operacją (tail position). Jeśli funkcja nie jest naprawdę ogonowa, kompilator nie zastosuje optymalizacji.
Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Krótki przykład (szablon do wyjaśniania):
// Example: discuss trade-offs for "`tailrec`:-co-robi-i-kiedy-kotlin-może-zoptymali"
function explain() {
// Start from the core idea:
// `tailrec` prosi kompilator o zamianę rekurencji ogonowej na pętlę (bez rosnącego stosu wyw
}