Un ensemble de définitions de fonctions est mutuellement récursif si la relation « 39#39 invoque 47#47 » admet un cycle : 48#48 invoque ...invoque 49#49 invoque 48#48. L'exemple suivant est classique (et sans grand intérêt) :
class Parité {
static boolean impair(int n) {
if (n == 0) {
return false;
} else {
return pair(n-1);
}
}
static boolean pair(int n) {
if (n == 0) {
return true;
} else {
return impair(n-1);
}
}
}
Les fonctions Parité.pair et Parité.impair
s'invoquent mutuellement :