뚠뚠멍의 생각들

Optymalizacja wywołań ogonowych (Tail Call Optimization)

  • Język oryginalny: Koreański
  • Kraj: Wszystkie krajecountry-flag
  • TO

Utworzono: 2024-10-12

Utworzono: 2024-10-12 18:47

Ucząc się testów kodowania i dodając efekty animacji do tekstu

podczas pisania funkcji rekurencyjnych, z pomocą AI dowiedziałem się o koncepcji TCO.


Optymalizacja rekurencji ogonowej zapobiega przepełnieniu stosu spowodowanemu wywołaniami rekurencyjnymi i sprawia, że użycie pamięci jest bardziej wydajne.


W JavaScript jest to określone w specyfikacji jako obsługiwane w trybie ścisłym ES6, ale wydaje się, że wciąż niewiele przeglądarek to obsługuje.


Rekurencja zwykła


Rekurencja ogonowa


Metoda kończenia ostatniej operacji funkcji wywołaniem funkcji rekurencyjnej nazywana jest rekurencją ogonową.

Nie potrzeba już ramki stosu funkcji, co optymalizuje zużycie pamięci!


W JavaScript sposób implementacji rekurencji ogonowej polega na użyciu techniki trampoliny.

W tej metodzie funkcja factorialTCO zamiast zwracać wynik bezpośrednio, zwraca funkcję.

Funkcja trampoline wykonuje te zwrócone funkcje, aż do uzyskania ostatecznego wyniku.


Jest to ważna technika w programowaniu funkcyjnym, interesujące jest to, że rozwiązuje wadę tradycyjnych funkcji rekurencyjnych (przepełnienie stosu). Szczerze mówiąc, patrząc tylko na kod, nie rozumiem tego intuicyjnie, więc muszę jeszcze raz to sprawdzić, gdy będę miał z tym problem.


Komentarze0

[Dla osób bez informatycznego wykształcenia, jak przetrwać jako programista] 14. Podsumowanie często zadawanych pytań na rozmowach kwalifikacyjnych dla początkujących programistówPodsumowując, przedstawiamy często zadawane pytania techniczne na rozmowach kwalifikacyjnych dla programistów (obszar pamięci, struktury danych, bazy danych itd.). Mamy nadzieję, że pomoże to w przygotowaniach do rozmowy kwalifikacyjnej.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024