view exercises/src/Exercise_11.hs @ 28:e0ae5d8b55d3

there was no solution here.
author Markus Kaiser <markus.kaiser@in.tum.de>
date Thu, 10 Jan 2013 14:04:09 +0100
parents a316877ed3d9
children
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 = undefined


safeUnscrambleWords :: [String] -> [String] -> [Either (String, [String]) String]
safeUnscrambleWords vocabs words = undefined

{- Musterlösung H7.2 -}
unscrambleWord :: [String] -> String -> String
unscrambleWord vocabs word
  | word `elem` vocabs = word
  | otherwise =
    case find (\vocab -> sort vocab == sort word) vocabs of
      Nothing -> word
      Just vocab -> vocab

unscrambleWords :: [String] -> [String] -> [String]
unscrambleWords = map . unscrambleWord



{---------------------------------------------------------------------}
{- 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-}