annotate exercises/src/Exercise_12.hs @ 31:d14aab8bbf36

week 12
author Markus Kaiser <markus.kaiser@in.tum.de>
date Wed, 16 Jan 2013 19:21:23 +0100
parents
children 21721a110098
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
1 module Exercise_12 where
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
2
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
4 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
5 {- Aufgabe G12.1 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
7 {-
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 Ausdruck: 1 + (2 * 3)
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
12 Ausdruck: (1 + 2) * (2 + 3)
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
14
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
15 Ausdruck: fst (1 + 2, 2 + 3)
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
16
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18 Ausdruck: fst (snd (1, 2 + 3), 4)
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
19
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
20
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
21 Ausdruck: (\x. 1 + x) (2 * 3)
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
22
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
23
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
24 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
25
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
26 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
27 {- Aufgabe G12.2 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
28
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
29 inf :: a -> [a]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
30 inf x = x : inf x
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
31
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
32 f :: [Int] -> [Int] -> [Int] -> Int
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
33 f (x:xs) (y:ys) zs | x > y = y
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
34 f (x1:x2:xs) ys (z:zs) = x1
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
35
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
36 a = f (inf (1+0)) (inf (1+1)) (inf (1+2))
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
37 b = f (inf (1+2)) (inf (1+1)) (inf (1+0))
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
38 c = f (inf (1+0)) [] (inf (1+1))
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
39
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
40
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
41 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
42 {- Aufgabe G12.3 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
43
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
44 fib :: Integer -> Integer
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
45 fib 0 = 0
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
46 fib 1 = 1
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
47 fib n = fib (n - 1) + fib (n - 2)
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
48
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
49
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
50 fib1 :: [Integer]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
51 fib1 = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
52
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
53
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
54 fib2 :: Integer -> Integer -> [Integer]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
55 fib2 x y = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
56
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
57
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
58
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
59 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
60 {- Aufgabe G12.4 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
61
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
62 hamming :: [Integer]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
63 hamming = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
64
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
65
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
66
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
67 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
68 {- Aufgabe H12.1 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
69
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
70 wordsOf :: [a] -> [[a]]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
71 wordsOf = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
72
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
73
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
74
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
75 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
76 {- Aufgabe H12.2 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
77
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
78 sumOfPrefixes :: Num a => [a] -> [a]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
79 sumOfPrefixes = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
80
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
81
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
82
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
83 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
84 {- Aufgabe H12.3 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
85
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
86 findByFilter :: (a -> Bool) -> [a] -> Maybe a
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
87 findByFilter = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
88
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
89
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
90
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
91 {---------------------------------------------------------------------}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
92 {- Aufgabe H12.4 -}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
93
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
94 {-WETT-}
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
95 censoredWordsOf :: Eq a => [a] -> [[a]] -> [[a]]
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
96 censoredWordsOf = undefined
d14aab8bbf36 week 12
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
97 {-TTEW-}