Αναδρομή (Recursion) είναι όταν μια συνάρτηση καλεί τον εαυτό της για να λύσει μια μικρότερη έκδοση του ίδιου προβλήματος. Κάθε αναδρομή χρειάζεται μια βασική περίπτωση (base case) που την σταματά και μια αναδρομική περίπτωση (recursive case) που κινείται προς τη βασική περίπτωση.
Η ιδέα
Διαιρέστε ένα πρόβλημα σε μικρότερα πανομοιότυπα υποπροβλήματα. Κάθε κλήση ωθεί ένα πλαίσιο στη στοίβα κλήσεων (call stack)· οι επιστροφές τα αφαιρούν.
Παράδειγμα
():
n <= :
n * factorial(n - )
factorial()
