From c36b20c6711f2a662d517819e967d6d865cab10b Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 8 Nov 2020 10:10:23 +0800 Subject: [PATCH] feat: add sample gcd --- .gitignore | 3 +++ README.md | 8 ++++++++ gcd.ml | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 gcd.ml diff --git a/.gitignore b/.gitignore index 7347638..075f737 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ .AppleDouble .LSOverride +*.cmi +*.cmo + # Icon must end with two \r Icon diff --git a/README.md b/README.md index c5b1f00..0fbe252 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,14 @@ OCaml Language tests https://ocaml.org/ +
+ +Compile single file: +```shell +$ ocamlc -o gcd gcd.ml +``` + +
Install on macOS ```shell diff --git a/gcd.ml b/gcd.ml new file mode 100644 index 0000000..96708bf --- /dev/null +++ b/gcd.ml @@ -0,0 +1,18 @@ +(* File gcd.ml *) +let rec gcd a b = + if b = 0 then a + else gcd b (a mod b);; + +let main () = + let len = Array.length Sys.argv in + Printf.printf "array length %d\n" len; + if len < 3 then ( + Printf.printf "must have 2 args"; + exit 0; + ); + let a = int_of_string Sys.argv.(1) in + let b = int_of_string Sys.argv.(2) in + Printf.printf "gcd of %d and %d is %d\n" a b (gcd a b); + exit 0;; +main ();; +