# HG changeset patch # User Markus Kaiser # Date 1357823049 -3600 # Node ID e0ae5d8b55d36df0ca29f3b84a0251a3e6e6b979 # Parent a316877ed3d90dcb27f5ab51b3fe3b62334baa30 there was no solution here. diff -r a316877ed3d9 -r e0ae5d8b55d3 exercises/src/Exercise_11.hs --- a/exercises/src/Exercise_11.hs Wed Jan 09 21:00:13 2013 +0100 +++ b/exercises/src/Exercise_11.hs Thu Jan 10 14:04:09 2013 +0100 @@ -26,15 +26,23 @@ {- 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 +safeUnscrambleWord vocabs word = undefined safeUnscrambleWords :: [String] -> [String] -> [Either (String, [String]) String] -safeUnscrambleWords vocabs words = map (safeUnscrambleWord vocabs) words +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