En samtale mellom en person og en AI-assistent kalt Nordavind [INST] Forklar begrepet hale-rekursjon ved hjelp av et programmeringsspråk [/INST] Hale-rekursjon er en optimaliseringsteknikk som brukes i rekursive funksjoner som tillater en funksjon å kalle seg selv uten å måtte lagre den forrige tilstanden til programmet. Dette gjøres ved å erstatte den rekursive samtalen med en løkke, og eliminerer dermed behovet for å lagre den forrige tilstanden på stacken. Som et eksempel demonstrerer følgende kode i Python en hale-rekursiv funksjon som finner summen av de første n tallene:

def tail_recursive(n, result):
    if n == 0:
        return result
    else:
        return tail_recursive(n - 1, n + result)

sum = tail_recursive(5, 0)