summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2022-11-28 19:05:57 +0200
committerIgor Pashev <pashev.igor@gmail.com>2022-11-29 12:11:00 +0200
commit271959a7ea324d833c245cecfc586ef140693578 (patch)
tree78e338e7b9f42c3bf9dd7f1ec716210517401db4
parent4a490014db1ebcefe76ed7c59b17751cebeb83d8 (diff)
downloadgcd-271959a7ea324d833c245cecfc586ef140693578.tar.gz
Update Haskell
-rw-r--r--gcd.hs13
1 files changed, 6 insertions, 7 deletions
diff --git a/gcd.hs b/gcd.hs
index b044c85..e868a1b 100644
--- a/gcd.hs
+++ b/gcd.hs
@@ -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