Die Schwanzrekursion ist eine rekursive Strategie, bei der eine Funktion einige Arbeit erledigt und sich dann selbst aufruft. Der "Schwanz" bezieht sich auf die Tatsache, dass die Rekursion ganz am Ende der Funktion steht. Viele - insbesondere funktionale - Programmiersprachen-Compiler können diese Arten von Aufrufen in Iteration umwandeln, was bedeutet, dass die Schwanzrekursion in unterstützten Sprachen unabhängig von der Anzahl der Aufrufe ohne Angst vor einem Stapelüberlauf verwendet werden kann.