Co to jest rekurencyjna rozmowa?

W programowaniu wywołanie rekurencyjne jest poleceniem w obrębie podprogramu lub funkcji, która mówi programowi, aby ponownie uruchomić tę samą podprogram. Powtórzenie wydajności może być bezpośrednim wynikiem funkcji lub można uruchomić drugą funkcję, która z kolei odnosi się do pierwszej funkcji. Wezwanie rekurencyjne ma pewne podobieństwa do przerażającej nieskończonej pętli, ale podprogram zawsze ma warunkowe stwierdzenie, które mówi programowi, kiedy przestać powtarzać rekurencję.

Koncepcja rekurencji jest prawdopodobnie najlepiej zilustrowana za pomocą przykładu. Załóżmy, że dekarz nakłada nowe półpasiec do domu. Na początek musi nosić pakiet półpasiec na dach. Po przybiciu pierwszego pakietu na miejscu musi zejść po drabinie, odzyskać kolejny pakiet i przybić go na miejscu. Proces trwa jako seria „Go, Fetch, Return”, aż do zastosowania ostatniego gontowego. W tym momencie dekarz może przejść do następnej pracy lub wrócić do domu.

Chociaż przykład IS jest nadmierne uproszczenie, zawiera wszystkie elementy wywołania rekurencyjnego. Jest punkt wyjścia, dekarz musi odzyskać to, czego potrzebuje, wrócić do początku, a kiedy ostateczny stan jest spełniony, zatrzymaj. Zasadniczo to robi program; Zaczyna się, wdraża działanie, wraca do siebie i kończy się, gdy wystąpi warunek końcowy.

Warunek końcowy jest określany jako przypadek podstawowy. Jest to niezbędne dla wszystkich połączeń rekurencyjnych; Bez tego funkcja będzie się powtarzać. W najlepszym razie powoduje to wyczerpanie zasobów pamięci systemu. Zwykle przeciążenie w pewnym momencie awansuje do programu, ale do czasu wykrycia problemu można wyrządzić znaczne szkody.

Doświadczeni programiści mogą rozpoznać podobieństwo między wywołaniem rekurencyjnym a „dla” lub „podczas„ pętli. Jeśli na przykład celem jest znalezienie całkowitej liczby zapasów wszystkich zapasów z częścią nUmbers większa niż 999, A „For” Pętla mówi programowi, aby zlokalizowali wszystkie kwalifikujące się instancje, a pętla „While” mówi programowi, aby wykonał pętlę tylko wtedy, gdy określony warunek jest ważny. Można powiedzieć, że połączenie rekurencyjne łączy niektóre cechy tych pętli z oświadczeniem „IF-Then-Then-Else”; Jeśli ten warunek jest prawdziwy, zrób to lub zrób coś innego, jeśli warunek jest fałszywy. Rekursja zazwyczaj pozwala jednak na bardziej kompaktowy kod i pozwala na przekazanie problemu do funkcji bliżej punktu, w którym jest potrzebny.

INNE JĘZYKI