Précédent Index Suivant



La Récursivité


Dans le corps d'un let les identificateurs (noms de fonctions) sont cherchés dans l'environnement courant.

La construction
let rec
introduit un identificateur récursif.

Soit Ec l'environnement courant, la déclaration

let rec foo = E
crée une valeur Vfoo qui est le résultat de l'évaluation de l'expression E dans l'environnement

Efoo=ë(foo=Vfoo)<|Ecû E -Efoo-> Vfoo

et Efoo devient l'environnement courant.

let rec fib = function n -> match n with
  | 0 -> 0
  | 1 -> 1
  | _ -> fib(n-1) + fib(n-2) ;;
définit un environnement Efib, une fermeture Ffibn:-> Efib,Efib»

l'évaluation d'une fonction récursive se fait comme une évaluation normale.

À l'appel d'une fonction récursive, il faut empiler les environnements :


Précédent Index Suivant