Exercice : Mise en forme
Définition de fonction récursive dite fonction de Sudan :
« F0(x, y) = x + y »
« Fn+1(x, 0) = x, n ≥ 0 »
« Fn+1(x, y + 1) = Fn(Fn+1(x, y), Fn+1(x, y) + y + 1), n ≥ 0 »
Nous voulons obtenir une écriture unifiée de la partie gauche de chaque clause « F(n, x, y) ». Comment réécrire les clauses ?
Les trois clauses deviennent :
F(n, x, y) = x+y, si n=0
F(n, x, y) = x, si n>0 et y=0
F(n, x, y) = F(n-1, F(n, x, y-1), F(n, x, y-1)+ y), si n>0
L'écriture Fn+1 signifie que l'indice doit être >0. Le fait de remplacer n+1 par n, nous oblige à corriger les conditions des clauses concernées.