Option informatique, Caml Light :
Est-ce quelqu'un pourrait m'expliquer l'idée des fonctions auxiliaires récursives ? Quand je vois un exemple de fonction recourant à une fonction auxiliaire récursive, je comprends la fonction, je vois pourquoi ça fonctionne... Mais je ne suis pas sûr de voir pas comment le programmeur a eu cette idée.
Je pense ainsi à l'exemple suivant, pour trouver le n-ième terme de la suite de Fibonacci :
let fibonacci n =
let fibaux n (x,y) = if n=0 then (x,y) else fibaux (n-1) (y,x+y)
in fst (fibaux n (0,1)) ;;
En général, ce que j'ai remarqué, c'est que :
-les fonctions récursives auxiliaires prennent un argument de plus que la fonction à qui elles servent d'auxiliaires
-cet argument supplémentaire sera utilisé en étant une constante
-il représente en réalité les valeurs qui mettront un terme à la récurrence
Mais j'aimerais savoir si ces observations sont pertinentes de manière générale, si c'est le bon cheminement, la bonne méthode pour écrire des fonctions utilisant une fonction auxiliaire récursive.
Merci d'avance