Une fonction récursive est une fonction qui fait appel à elle-même, qui s'appelle elle-même, au cours même de son exécution.
Elle s'exécute, et au cours de son exécution, elle s'appelle elle-même.
La programmation récursive semble très simple dans le principe : il s'agit d'un appel de fonction à l'intérieur d'un appel de fonction donc rien de différent après tout de ce que l'on connaît déjà Il est temps de regarder de plus près ce qui se passe quand on fait un appel de fonction.
Pour donner un sens à cette égalité de types, on distingue deux formes de récursivité qui diffèrent dans la manière d'introduire et d'éliminer les types récursifs : l'équirécursivité et l'isorécursivité.