From 9f86fb4b7d33e07ec2455dd5dcc0de07b5aad495 Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Sun, 9 Jul 2017 10:02:13 +0300 Subject: Update Haskell --- gcd.hs | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/gcd.hs b/gcd.hs index fe07fc0..b044c85 100644 --- a/gcd.hs +++ b/gcd.hs @@ -1,14 +1,30 @@ -import System.Environment(getArgs) +{- +Usage: + + $ runhaskell gcd.hs 22 11 + 11 + +or: + + $ ghc gcd.hs -o gcd-hs + $ ./gcd-hs 11 22 121 + 11 + +-} +import System.Environment (getArgs) + +gcd2 :: Integer -> Integer -> Integer gcd2 a 0 = a gcd2 a b = gcd2 b (a `rem` b) -gcdn n = foldl1 gcd2 n +gcdn :: [Integer] -> Integer +gcdn = foldl1 gcd2 str2int :: String -> Integer str2int = read +main :: IO () main = do - a <- getArgs - print (gcdn (map str2int a)) - + a <- getArgs + print $ gcdn (map str2int a) -- cgit v1.2.3