Téma
- #TCO
- #Farokrekurzió
- #Rekurzív függvények
Létrehozva: 2024-10-12
Létrehozva: 2024-10-12 18:47
Kódolási tesztek tanulmányozása közben, és egy szöveg animációs effektusainak hozzáadása közben
rekurzív függvény írásakor az AI segítségével megismerkedtem a TCO (Tail Call Optimization) fogalmával.
A farokrekurzió optimalizálás meggátolja a rekurzív hívásokból eredő verem túlcsordulást, és hatékonyabbá teszi a memória használatát.
A JavaScriptben az es6 szigorú mód támogatja, de úgy tűnik, még nem sok böngésző támogatja.
Általános rekurzió
Farokrekurzió
A függvény utolsó műveletének rekurzív függvényhívással való befejezését farokrekurziónak nevezzük.
Nincs szükség függvényverem keretre, így optimalizálja a memória használatát!
A JavaScriptben a farokrekurzió implementálásának módja a trambulin technika használata.
Ebben a módszerben a factorialTCO függvény nem közvetlenül adja vissza az eredményt, hanem egy függvényt.
A trampoline függvény folyamatosan futtatja ezeket a visszaadott függvényeket, hogy megkapja a végeredményt.
A funkcionális programozás egyik fő technikája, érdekes, hogy megoldja a hagyományos rekurzív függvények hátrányát (veremtúlcsordulás). Valójában csak a kód alapján nem könnyű megérteni, így ha elakadok, újra utánanézek.
Hozzászólások0