Recursiunea este atunci când o funcție se apelează pe sine pentru a rezolva o versiune mai mică a aceleiași probleme. Fiecare recursiune are nevoie de un caz de bază care o oprește și de un caz recursiv care avansează spre bază.
Ideea
Împarte o problemă în subprobleme mai mici și identice. Fiecare apel împinge un frame pe stiva de apeluri (call stack); returnurile le scot.
Exemplu
():
n <= :
n * factorial(n - )
factorial()
