Rekursja to rodzaj wywołania funkcji, w którym funkcja wywołuje samą siebie. Takie funkcje są również nazywane funkcjami rekurencyjnymi. Rekursja strukturalna to metoda rozwiązywania problemu, w której rozwiązanie problemu zależy od rozwiązań mniejszych wystąpień tego samego problemu.