instruction: Magyarázza el a farok rekurzió fogalmát egy programozási nyelv segítségével.
output: A farokrekurzió egy olyan technika a programozásban, amikor egy rekurzív függvény az utolsó műveletként önmagát hívja meg, és a rekurzív hívás visszatérési értéke azonnal visszaküldésre kerül. Az ilyen típusú rekurzió "farokrekurzió" néven ismert, mivel a rekurzív hívás a függvény utolsó művelete.
  
  A farokrekurzió hatékonyabb lehet, mint a hagyományos rekurzió, mivel lehetővé teszi a fordító vagy az értelmező számára, hogy optimalizálja a rekurzív hívásokat, és megakadályozza, hogy a program túlzott mennyiségű memóriát használjon a többszörös veremkeretek létrehozásának elkerülése révén. Ehelyett minden rekurzív hívásnál az előző veremkeret felülíródik.
  
  Nézzünk egy példát a Python programozási nyelv segítségével egy szám faktoriálisának kiszámítására a farokrekurzió segítségével:
  
  ```python
  def tail_factorial(n, accumulator=1):
      if n == 1: # Alapeset
          return accumulator
      else:
          # Tail rekurzív hívás.
  ```
  
  A fenti példában definiálunk egy `tail_factorial` függvényt, amely két argumentumot vesz fel, `n` és `accumulator`. `n` az a szám, amelyre ki akarjuk számítani a faktoriális értéket, míg az `accumulator` arra szolgál, hogy a rekurzív hívások során nyomon kövessük az eredményt. Az alapesetben, amikor `n` 1 lesz, a függvény az `accumulator` értékét adja vissza. Ellenkező esetben a függvény önmagát hívja meg, átadva `n-1` és `n*akkumulátor` argumentumokat, ami frissíti az értékeket a következő rekurzív híváshoz. Figyeljük meg, hogy a rekurzív hívás az utolsó művelet a függvényben, ami a függvényt farokrekurzívvá teszi.
  
  Ez az optimalizálási technika nem minden programozási nyelvben érhető el, és viselkedése különböző fordítóprogramok és értelmezők között eltérő lehet.