Skip to content
programming languages for all
GitHub

Ocaml

print_endline "Hello, World!";;
let rec factorial n =
  match n with
  | 0 -> 1
  | 1 -> 1
  | _ -> n * factorial (n - 1)
;;

print_string "Enter a number: ";
flush stdout;

try
  let number = read_int () in
  if number < 0 then
    raise (Failure "Invalid input. Please enter a non-negative integer.")
  else
    let result = factorial number in
    print_int result;
    print_newline ()
with
| Failure msg -> print_endline msg
| _ -> print_endline "Invalid input. Please enter a valid non-negative integer."