Effectuer un l-lifting sur les programmes Caml suivants :
map :
let map f =
let rec map_rec = function
[] -> []
| h::t -> f h :: (map_rec t)
in map_rec
;;
racine carrée d'un nombre :
let rac x =
let rec g y =
let rec power2 z = if z=0 then 1
else y+(power2 (z-1))
in
if (power2 y)>x then (y-1)
else g (y+1)
in
g 1
;;
Écrire un traducteur de mini-ML vers la CAM et écrire un interpréteur de
la CAM. Vous pourrez vous inspirez du manuel de référence de Caml-light qui contient
un traducteur vers la CAM d'un langage proche de mini-ML.