RosettaCodeData/Task/Command-line-arguments/OCaml/command-line-arguments-2.ml

21 lines
553 B
Standard ML

(* default values *)
let somebool = ref false
let somestr = ref ""
let someint = ref 0
let usage = "usage: " ^ Sys.argv.(0) ^ " [-b] [-s string] [-d int]"
let speclist = [
("-b", Arg.Set somebool, ": set somebool to true");
("-s", Arg.Set_string somestr, ": what follows -s sets some string");
("-d", Arg.Set_int someint, ": some int parameter");
]
let () =
(* Read the arguments *)
Arg.parse
speclist
(fun x -> raise (Arg.Bad ("Bad argument : " ^ x)))
usage;
Printf.printf " %b %d '%s'\n" !somebool !someint !somestr