annotate exercises/src/Exercise_3.hs @ 6:ae83fe6ebcd3

week 3 tutorial
author Markus Kaiser <markus.kaiser@in.tum.de>
date Wed, 07 Nov 2012 20:18:58 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 module Exercise_3 where
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2 import Data.List
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3 import Data.Char (isSpace)
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5 {- Library DO NOT CHANGE -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6 type WrapFun = [Char] -> [Char]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 type Picture = [[Char]]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 printPicture :: Picture -> IO ()
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 printPicture [] = return ()
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11 printPicture (xs : xss) = do
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12 putStrLn xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 printPicture xss
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 pic = [".##.", ".#.#", ".###", "####"]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16 {- End Library -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20 {- Aufgabe H3.1 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
21
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
22 snoc :: [a] -> a -> [a]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
23 snoc [] y = [y]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24 snoc (x : xs) y = x : snoc xs y
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27 member :: Eq a => a -> [a] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28 member _ [] = False
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 member e (x : xs) = e == x || member e xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 butlast :: [a] -> [a]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 butlast [] = []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34 butlast [_] = []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35 butlast (x : xs) = x : butlast xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39 {- Aufgabe G3.2 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41 uniq :: Eq a => [a] -> [a]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42 uniq (x:y:ys) = if x == y then uniq (y:ys) else x : uniq (y:ys)
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43 uniq xs = xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
46 -- Alternativ:
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
47 uniq' :: Eq a => [a] -> [a]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48 uniq' [] = []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49 uniq' (x:xs) = f x xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 where f x [] = [x]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 f x (y:ys) | x == y = f x ys
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52 | otherwise = x : f y ys
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 uniqCount :: Eq a => [a] -> [(a, Integer)]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 uniqCount [] = []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56 uniqCount (x:xs) = f (x,1) xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57 where f p [] = [p]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58 f (x,c) (y:ys) | x == y = f (x, c + 1) ys
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59 | otherwise = (x,c) : f (y, 1) ys
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
62
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
63 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
64 {- Aufgabe G3.3 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
65
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
66 intersep :: a -> [a] -> [a]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
67 intersep sep (c : c' : cs) = c : sep : intersep sep (c' : cs)
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
68 intersep _ cs = cs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
69
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
70
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
71 andList :: [[Char]] -> [Char]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
72 andList [] = ""
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
73 andList [w] = w
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
74 andList [w1, w2] = w1 ++ " and " ++ w2
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
75 andList [w1, w2, w3] = w1 ++ ", " ++ w2 ++ ", and " ++ w3
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
76 andList (w : ws) = w ++ ", " ++ andList ws
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
77
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
78
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
79
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
80 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
81 {- Aufgabe G3.4 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
82
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
83 triangle :: [a] -> [(a, a)]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
84 triangle [] = []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
85 triangle (x : xs) = [(x, x') | x' <- xs] ++ triangle xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
86
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
87
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
88 {- QuickCheck properties -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
89 prop_triangle_base = triangle ([] :: [Int]) == []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
90 prop_triangle_one x = triangle [x] == []
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
91 prop_triangle_two x y = triangle [x, y] == [(x, y)]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 prop_triangle_length xs =
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
93 length (triangle xs) == n * (n - 1) `div` 2
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
94 where n = length xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
95 prop_triangle_distinct xs =
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
96 distinct xs ==> distinct (triangle xs)
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
97 where distinct ys = nub ys == ys
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
98 prop_triangle_complete x xs y ys = (x, y) `elem` triangle (x : xs ++ y : ys)
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
99 prop_triangle_sound1 x y xs =
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
100 not ((x, y) `elem` triangle (delete x (nub xs)))
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
101 && not ((y, x) `elem` triangle (delete x (nub xs)))
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
102 prop_triangle_rec x xs =
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
103 triangle (x : xs) == [(x, x') | x' <- xs] ++ triangle xs
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
104
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
105
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
106
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
107 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
108 {- Aufgabe H3.1 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
109
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
110 simplifySpaces :: [Char] -> [Char]
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
111 simplifySpaces = undefined
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
112
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
113
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
114
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
115 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
116 {- Aufgabe H3.2 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
117
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
118 prop_wrap1 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
119 prop_wrap1 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
120
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
121 prop_wrap2 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
122 prop_wrap2 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
123
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
124 prop_wrap3 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
125 prop_wrap3 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
126
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
127 prop_wrap4 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
128 prop_wrap4 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
129
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
130 prop_wrap5 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
131 prop_wrap5 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
132
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
133 prop_wrap6 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
134 prop_wrap6 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
135
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
136 prop_wrap7 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
137 prop_wrap7 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
138
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
139 prop_wrap8 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
140 prop_wrap8 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
141
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
142 prop_wrap9 :: WrapFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
143 prop_wrap9 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
144
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
145 prop_wrap10 :: wrap xsFun -> [Char] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
146 prop_wrap10 wrap xs = True
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
147
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
148
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
149
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
150 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
151 {- Aufgabe H3.3 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
152
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
153 rotateClockwise :: Picture -> Picture
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
154 rotateClockwise = undefined
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
155
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
156
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
157
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
158 {---------------------------------------------------------------------}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
159 {- Aufgabe H3.4 -}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
160
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
161 {-WETT-}
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
162 sublist :: Eq a => [a] -> [a] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
163 sublist xs ys = undefined
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
164
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
165
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
166 subseq :: Eq a => [a] -> [a] -> Bool
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
167 subseq xs ys = undefined
ae83fe6ebcd3 week 3 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
168 {-TTEW-}