Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Dansk where
- import Char
- import Data.List
- data Dansk = En|Et|To|Tre|Fire|Fem|Seks|Syv|Otte|Ni
- deriving (Eq, Ord, Show, Read)
- dansk :: String -> Int
- dansk a
- | "og" `isInfixOf` a = mer a
- | otherwise = en2ni a
- -- rSpace :: String -> Bool
- -- rSpace "" = False
- -- rSpace (x:str)
- -- | isSpace x == True = True
- -- | otherwise = rSpace str
- en2ni :: String -> Int
- en2ni x
- | "en" `isPrefixOf` x = 1
- | "et" `isPrefixOf` x = 1
- | "to" `isPrefixOf` x = 2
- | "tre" `isPrefixOf` x = 3
- | "fire" `isPrefixOf` x = 4
- | "fem" `isPrefixOf` x = 5
- | "seks" `isPrefixOf` x = 6
- | "syv" `isPrefixOf` x = 7
- | "otte" `isPrefixOf` x = 8
- | "ni" `isPrefixOf` x = 9
- | otherwise = ti2nitten x
- mer :: String -> Int
- mer x = tyve2halvfems x + en2ni x
- ti2nitten :: String -> Int
- ti2nitten x
- | x == "ti" = 10
- | x == "ellve" = 11
- | x == "tolv" = 12
- | x == "tretten" = 13
- | x == "fjorten" = 14
- | x == "femten" = 15
- | x == "seksten" = 16
- | x == "sytten" = 17
- | x == "atten" = 18
- | x == "nitten" = 19
- | otherwise = tyve2halvfems x
- tyve2halvfems :: String -> Int
- tyve2halvfems x
- | " tyve" `isInfixOf` x = 20
- | "tredvie" `isInfixOf` x = 30
- | "fyrre" `isInfixOf` x = 40
- | "fyrretyve" `isInfixOf` x = 40
- | otherwise = halvtreds2halvfems x
- halvtreds2halvfems :: String -> Int
- halvtreds2halvfems x
- | "halv" `isInfixOf` x = -10 + mult x
- mult :: String -> Int
- mult x
- | "tres" `isInfixOf` x = 3 * emfas x
- | "firs" `isInfixOf` x = 4 * emfas x
- | "fjerds" `isInfixOf` x = 4 * emfas x
- | "fems" `isInfixOf` x = 5*emfas x
- | otherwise = 0
- emfas :: String -> Int
- emfas x
- | "sindstyve" `isInfixOf` x = 20
Add Comment
Please, Sign In to add comment