• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Rekurencja ogonowa

+2 głosów
449 wizyt
pytanie zadane 10 maja 2022 w Rozwój zawodowy, nauka, praca przez maxkolanko1998 Gaduła (3,230 p.)
Tak w prostych przystępnych słowach co to jest ta cała rekurencja ogonowa. Wiem że jest wykorzystywana jakaś dodatkowa zmienna, która powoduje że stos wywołań pozostaje taki sam. Ale jak to dokładnie działa?

1 odpowiedź

+1 głos
odpowiedź 10 maja 2022 przez Wiciorny Ekspert (282,500 p.)
wybrane 11 maja 2022 przez maxkolanko1998
 
Najlepsza

ja sie czasami zastanawiam, na co ktoś wymyśla takie głupoty...  w sensie autorzy artykułów, czy postów nawet, czasami albo "zamierzenie" dobierają taie słowa, aby zaciekawić, coś wymyśleć- aby opisując WAŁKOWANY wszędzie temat, jakoś się zaprezentować (* co to ja nie wiem), a w rzeczywistości :D powodują zmieszanie i zakłopotanie.


https://pl.wikipedia.org/wiki/Rekurencja_ogonowa
 w której ostatnia operacja wykonywana przez funkcję to rekurencyjne wywołanie samej siebie lub zwrócenie końcowego wyniku

Co to oznacza? 
Ze funkcja NIE JEST REKURENCYJNA CALA i do wyniku nie wywoluje samej siebie, jedynie JEJ OSTATNI ETAP wywołanie ( które kończy jej prace działanie, jest rekurencyjnym wywołaniem niej samej). W trakcie poszczególnych kroków mogą być inne operacje nie rekurencyjne lub sama w sobie realizuje coś nie wywołując siebie wielokrotnie krok po kroku 

2
komentarz 11 maja 2022 przez mokrowski Mędrzec (158,940 p.)
Uważaj... tłumaczysz rekurencję. A żeby ją rozumieć, trzeba najpierw zrozumieć rekurencję :)

A poważniej...

Dodał bym tylko że w przypadku języków kompilowanych, w wyniku assemblera przy wystąpieniu rekurencji ogonowej, zostanie wstawiona instrukcja jmp a nie call. Będzie to wiązało się z małą konsumpcją stosu wywołań. Takie biblijne "po owocach ją poznacie".

W C i C++ konieczność stosowania optymalizacji rekurencji ogonowej, nie jest obecna w standardzie. Ogólnie temat rekurencji w produkcyjnym programowaniu, jest .. kontrowersyjny.
komentarz 11 maja 2022 przez maxkolanko1998 Gaduła (3,230 p.)
przeniesione 11 maja 2022 przez ScriptyChris
Ok dzięki za pomoc

Podobne pytania

0 głosów
0 odpowiedzi 1,378 wizyt
pytanie zadane 18 marca 2017 w Inne języki przez aborolabis Nowicjusz (120 p.)
+1 głos
1 odpowiedź 262 wizyt
+1 głos
1 odpowiedź 344 wizyt

93,608 zapytań

142,531 odpowiedzi

323,004 komentarzy

63,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...