Mercurial > 12ws.info2
view exercises/src/Exercise_11.hs @ 27:a316877ed3d9
week 11
author | Markus Kaiser <markus.kaiser@in.tum.de> |
---|---|
date | Wed, 09 Jan 2013 21:00:13 +0100 |
parents | |
children | e0ae5d8b55d3 |
line wrap: on
line source
module Exercise_11 where import Data.List import Parser import RegEx import Test.QuickCheck {- Library DO NOT CHANGE -} data Html = Text String | Block String [Html] deriving (Eq, Show) data HtmlT = OpenT String | CloseT String | WordT String deriving (Eq, Show) htmlP_ex1 = [WordT "hello", WordT "world"] htmlP_ex2 = [OpenT "sv", WordT "hej", WordT "vaerld", CloseT "sv"] htmlP_ex3 = [OpenT "a", CloseT "a", WordT "b"] htmlP_ex4 = [OpenT "a", WordT "foo", WordT "bar"] htmlP_ex5 = [OpenT "a", OpenT "b", WordT "c", CloseT "b", WordT "d", CloseT "a"] vocabs = ["i", "kyoto", "more", "now", "tokyo", "want", "won"] text1 = ["i", "want", "mroe"] text2 = ["and", "i", "tnaw", "it", "now"] text3 =["tokyo", "toyko", "kyoto"] {- End Library -} {---------------------------------------------------------------------} {- Aufgabe G11.1 -} safeUnscrambleWord :: [String] -> String -> Either (String, [String]) String safeUnscrambleWord vocabs word | word `elem` vocabs = Right word | otherwise = Left (word, filter (\v -> sort v == sorted) vocabs) where sorted = sort word safeUnscrambleWords :: [String] -> [String] -> [Either (String, [String]) String] safeUnscrambleWords vocabs words = map (safeUnscrambleWord vocabs) words {---------------------------------------------------------------------} {- Aufgabe G11.2, G11.3 -} -- siehe FormParser3.hs {---------------------------------------------------------------------} {- Aufgabe H11.1 -} nat :: Parser Char Int nat = undefined int :: Parser Char Int int = undefined double :: Parser Char Double double = undefined {---------------------------------------------------------------------} {- Aufgabe H11.2 -} htmlS :: Parser Char [HtmlT] htmlS = undefined infixr 5 ***= (***=) :: Parser a b -> (b -> Parser a c) -> Parser a (b,c) _ ***= _ = undefined htmlP :: Parser HtmlT Html htmlP = undefined {---------------------------------------------------------------------} {- Aufgabe H11.3 -} {-WETT-} regEx :: Parser Char RegEx regEx = undefined {-TTEW-}