diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2022-11-28 19:05:57 +0200 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2022-11-29 12:11:00 +0200 |
commit | 271959a7ea324d833c245cecfc586ef140693578 (patch) | |
tree | 78e338e7b9f42c3bf9dd7f1ec716210517401db4 | |
parent | 4a490014db1ebcefe76ed7c59b17751cebeb83d8 (diff) | |
download | gcd-271959a7ea324d833c245cecfc586ef140693578.tar.gz |
Update Haskell
-rw-r--r-- | gcd.hs | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -14,17 +14,16 @@ or: -} import System.Environment (getArgs) -gcd2 :: Integer -> Integer -> Integer +gcd2 :: Integral a => a -> a -> a gcd2 a 0 = a gcd2 a b = gcd2 b (a `rem` b) -gcdn :: [Integer] -> Integer +gcdn :: Integral a => [a] -> a gcdn = foldl1 gcd2 -str2int :: String -> Integer -str2int = read +out :: [String] -> IO () +out [] = return () +out a = print (gcdn (map read a) :: Integer) main :: IO () -main = do - a <- getArgs - print $ gcdn (map str2int a) +main = getArgs >>= out |