Rekursja to sytuacja, w której funkcja wywołuje samą siebie, aby rozwiązać mniejszą wersję tego samego problemu. Każda rekursja wymaga warunku bazowego (base case), który ją zatrzymuje, oraz przypadku rekurencyjnego (recursive case), który zbliża się do warunku bazowego.
Idea
Rozbij problem na mniejsze, identyczne podproblemy. Każde wywołanie umieszcza ramkę na stosie wywołań (call stack); powroty je usuwają.
Przykład
():
n <= :
n * factorial(n - )
factorial()
