let map f =
let rec map_rec = function
[] -> []
| h::t -> f h :: (map_rec t)
in map_rec
;;
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
;;