aboutsummaryrefslogtreecommitdiff
path: root/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs69
1 files changed, 0 insertions, 69 deletions
diff --git a/Main.hs b/Main.hs
deleted file mode 100644
index e8b2927..0000000
--- a/Main.hs
+++ /dev/null
@@ -1,69 +0,0 @@
-import Math
-import System.Environment
-import Data.List
-import Text.Printf
-
-errorMessage :: String -> String
-
-errorMessage "" = "nd v1\nUsage: nd [-help, -int, -prime, -factor, -hcf]\n"
-errorMessage reason = "nd v1\nFAILURE: "
- ++ reason
- ++ "\nUsage: nd [-int, -prime, -factor, -hcf]\n"
-
-flagHandlerF :: [String] -> Int -> String -> ([String] -> String) -> String
-
-flagHandlerF args (-1) error fmessage =
- if (length args) == 0
- then error
- else
- (fmessage args)
-
-flagHandlerF args nargs error fmessage =
- if (length args) /= nargs
- then error
- else
- (fmessage args)
-
-flagHandler :: String -> [String] -> String
-
-flagHandler "-prime" args =
- flagHandlerF args (-1)
- (errorMessage "-prime requires at least one integer argument")
- (\args ->
- foldl (++) "" [show y ++ ": isPrime=" ++ (show $ isPrime y)
- ++ "\n" | x <- args, let y = (read x) :: Int])
-
-flagHandler "-factor" args =
- flagHandlerF args (-1)
- (errorMessage "-factor requires at least one integer argument")
- (\args ->
- foldl (++) "" [show y ++ ": factors=" ++ show (factors $ y)
- | x <- args, let y = (read x) :: Int])
-
-flagHandler "-int" args =
- flagHandlerF args (-1)
- (errorMessage "-int requires at least one integer argument")
- (\args ->
- foldl (++) "" [show y ++ ": (isPrime=" ++ (show $ isPrime y)
- ++ ", factors=" ++ (show $ factors y)
- ++ ")\n" | x <- args, let y = (read x) :: Int])
-
-flagHandler "-hcf" args =
- flagHandlerF args (2)
- (errorMessage "-hcf requires two integer arguments")
- (\args ->
- let n = (read $ head args) :: Int
- m = (read $ head $ tail args) :: Int
- hcf = head $ reverse $ intersect (factors n) (factors m) in
- "hcf(" ++ show n ++ ", " ++ show m ++ "): hcf=" ++ show hcf)
-
-flagHandler _ _ =
- errorMessage "Flag not recognised"
-
-
-main = do
- args <- getArgs
- putStr $
- case args of
- [] -> errorMessage ""
- (x: xs) -> if x == "-help" then errorMessage "" else flagHandler x xs