Rekursja ogonowa to strategia rekurencyjna, w której funkcja wykonuje pewną pracę, a następnie wywołuje samą siebie. „Ogon” odnosi się do faktu, że rekursja znajduje się na samym końcu funkcji. Wiele - szczególnie funkcjonalnych - kompilatorów języków programowania może przekształcić tego typu wywołania w iterację, co oznacza, że rekurencja ogona w obsługiwanych językach może być używana bez obawy o przepełnienie stosu, niezależnie od liczby wywołań.