1 2 3 4 5 6 7 8
let rec fact = function | n -> fact2 n 1 and fact2 n m = match n with 0 -> m | n -> fact2 (n - 1) (m * n) ;; print_int (fact 5) ;;
1
120