annotate exercises/src/Exercise_14.hs @ 37:15e527f4b92e

add some more examples to G14.2 (thanks Tobi)
author Markus Kaiser <markus.kaiser@in.tum.de>
date Wed, 06 Feb 2013 21:48:45 +0100
parents 89feab98266f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 module Exercise_14 where
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2 import qualified Data.List
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
3 import Test.QuickCheck
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6 {---------------------------------------------------------------------}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 {- Aufgabe G14.1 -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 delete :: Eq a => a -> [a] -> [a]
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10 delete = Data.List.delete {- falsche Implementierung -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
13 -- Reimplementierung: Vollständig?
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
14 prop_reimplement x xs =
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
15 delete x xs == filter (/=x) xs
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
17 -- Induktive Tests: Vollständig
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
18 prop_nil :: Int -> Bool
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
19 prop_nil x = null (delete x [])
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
20
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
21 prop_cons :: Char -> Char -> [Char] -> Bool
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
22 prop_cons x y xs =
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
23 delete x (y : xs) ==
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
24 if x == y then delete x xs
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
25 else y : delete x xs
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
26
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
27 -- Kombinatorische Tests: Vollständig
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
28 prop_single x y =
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
29 delete x [y] ==
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
30 if x == y then []
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
31 else [y]
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
33 prop_append x xs ys =
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
34 delete x (xs ++ ys) == delete x xs ++ delete x ys
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
35
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
36 -- Spezifische Tests: Unvollständig
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
37 prop_noelem x xs = x `notElem` delete x xs
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
38
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
39 prop_neutrality x xs = x `notElem` xs ==> xs == delete x xs
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
40
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
41 prop_nothingNew x xs = delete x xs `subseq` xs
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
42 where
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
43 subseq = undefined
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
44
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
45 prop_length x xs =
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
46 length xs - length [c | c <- xs, c == x] == length (delete x xs)
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
47
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
48 prop_idem x xs = d == delete x d
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
49 where d = delete x xs
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
50
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
51 -- Beispiele: Sehr fragwürdig
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
52 prop_example x = delete x (replicate 10 x) == []
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56 {---------------------------------------------------------------------}
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
57 {- Aufgabe G14.2 -}
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
58
37
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
59 -- Beispiele zur Endrekursion
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
60 sum1 :: Int -> Int
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
61 sum1 0 = 0
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
62 sum1 n = n + sum1 (n - 1)
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
63 {-
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
64 sum1 3 = 3 + sum1 2
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
65 sum1 2 = 2 + sum1 1
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
66 sum1 1 = 1 + sum1 0
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
67 sum1 0 = 0
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
68 sum1 1 = 1 + 0
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
69 = 1
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
70 sum1 2 = 2 + 1
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
71 = 3
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
72 sum1 3 = 3 + 3
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
73 = 6
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
74 -}
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
75
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
76 sum2 :: Int -> Int
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
77 sum2 = sum2_end 0
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
78 where
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
79 sum2_end acc 0 = acc
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
80 sum2_end acc n = sum2_end (acc + n) (n - 1)
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
81 {-
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
82 sum2 3 = sum2_end 0 3
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
83 = sum2_end 3 2
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
84 = sum2_end 5 1
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
85 = sum2_end 6 0
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
86 = 6
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
87
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
88 -}
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
89
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
90
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
91 -- Concats
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
92 -- Nicht Endrekursiv
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
93 concat' :: [[a]] -> [a]
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
94 concat' [] = []
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
95 concat' (xs:xss) = xs ++ concat' xss
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
96
37
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
97 -- O(n)
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
98 concat'' :: [[a]] -> [a]
37
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
99 concat'' yss = go [] (reverse yss)
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
100 where
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
101 go acc [] = acc
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
102 go acc (xs:xss) = go (xs ++ acc) xss
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
103
37
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
104 -- O(n^2)
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
105 concat''' :: [[a]] -> [a]
37
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
106 concat''' = go []
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
107 where
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
108 go acc [] = acc
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
109 go acc (xs:xss) = go (acc ++ xs) xss
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
110
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
111 -- Mit Fold
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
112 concat'''' :: [[a]] -> [a]
15e527f4b92e add some more examples to G14.2 (thanks Tobi)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 36
diff changeset
113 concat'''' = foldr (++) []
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
114
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
115
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
116
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
117 {---------------------------------------------------------------------}
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
118 {- Aufgabe G14.3 -}
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
119
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
120 {-
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
121
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
122 map (*2) (1 : threes) !! 1
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
123 = ((*2) 1 : map (*2) threes) !! 1
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
124 = map (*2) threes !! 0
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
125 = map (*2) (3: threes) !! 0
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
126 = ((*2) 3 : map (*2) threes) !! 0
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
127 = (*2) 3
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
128 = 3 * 2
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
129 = 6
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
130
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
131
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
132 ((\f -> \x -> x + f 2) (\y -> y * 2)) (3 + 1)
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
133 = (\x -> x + (\y -> y * 2) 2) (3 + 1)
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
134 = (3 + 1) + (\y -> y * 2) 2
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
135 = 4 + (\y -> y * 2) 2
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
136 = 4 + 2 * 2
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
137 = 4 + 4
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
138 = 8
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
139
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
140
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
141 filter (/=3) threes
36
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
142 = filter (/=3) (3 : threes)
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
143 = filter (/=3) threes
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
144 --> terminiert nicht
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
145
89feab98266f week 14 tutorial
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 35
diff changeset
146 threes = 3 : threes
35
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
147
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
148 -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
149
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
150
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
151
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
152 {---------------------------------------------------------------------}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
153 {- Aufgabe H14.1 -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
154
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
155 {- Type me! -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
156
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
157
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
158
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
159 {---------------------------------------------------------------------}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
160 {- Aufgabe H14.2 -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
161
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
162 {- Proof me! -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
163
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
164
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
165
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
166 {---------------------------------------------------------------------}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
167 {- Aufgabe H14.3 -}
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
168
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
169 filterMap :: (a -> Maybe b) -> [a] -> [b]
782323a762a2 week 14
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
170 filterMap = undefined