let rec fact1 n =
  match n with
    0 -> 1
  | n -> n * fact1 (n - 1);;

print_int (fact1 5);;

print_string "\n";;

let rec fact2 n = 
  if n < 2 then 1 
           else n * fact2 (n - 1);;

print_int (fact2 5);;

print_string "\n";;

let rec fact3 = function
  | 0 -> 1 
  | x -> x*fact3 (x-1);; 

print_int (fact3 5);;

