====== Rekurzivní funkce ====== * [[dox>rekurzivni-funkce/fibonacciho-cisla.c|Fibonacciho_čísla]] * [[dox>rekurzivni-funkce/hledani-pulenim-intervalu.c|Hledání_půlením_intervalu]] ======Rekurzivní funkce====== Funkce, která ve svém těle volá sama sebe (jeden nebo více příkazů těla této funkce obsahuje volání této funkce), se nazývá //rekurzivní//. Princip rekurze spočívá ve "zjednodušování" daného problému při postupném volání funkce. V rekurzivních funkcích vždy existuje mezní podmínka (vyjadřující řešení elementárního problému, např. faktoriál čísla 0, třídění jednoprvkové posloupnosti), při jejímž splnění dojde k přerušení rekurze. Příklady rekurzivních funkcí * výpočet faktoriálu, * výpočet fibonacciho čísla, * quicksort, * metoda půlení intervalu, ... * h0nza: hmm, jakýkoli cyklus lze jako rekurzi? Pro a proti: * elegance * režie zásobníku!!! nemáme ocasní rekurzi (tailcall) * nemáme lambda, letrec, y-kombinator ...