From f8b0cf38d1f62e3f012a086513aa73952fbb9b3b Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Thu, 10 Nov 2022 11:28:52 +0200 Subject: Add Erlang --- gcd.erl | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 gcd.erl diff --git a/gcd.erl b/gcd.erl new file mode 100644 index 0000000..484bd9e --- /dev/null +++ b/gcd.erl @@ -0,0 +1,28 @@ +% Synopsis: +% +% $ escript gcd.erl 11 22 33 121 +% +% or +% +% $ erl -compile gcd / erlc gcd.erl +% $ erl -noshell -run gcd main 11 22 33 121 +% + +-module(gcd). +-export([main/1, main/0]). +-mode(compile). + +gcd2(A, 0) -> A; +gcd2(A, B) -> gcd2(B, A rem B). + +gcdn(Nums) -> + lists:foldl(fun gcd2/2, 0, Nums). + +main() -> init:stop(). + +main([]) -> init:stop(); +main(Args) -> + Nums = lists:map(fun erlang:list_to_integer/1, Args), + io:format("~w\n", [gcdn(Nums)]), + init:stop(). + -- cgit v1.2.3