blob: dc747666523f0ba1cf10959160c6b8fd2da86a80 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Zij gegeven:
(++) :: [a] [a] -> [a]
(++) [] xs = xs (1)
(++) [y:ys] xs = [y : ys ++ xs] (2)
map :: (a -> b) [a] -> [b]
map f [] = [] (3)
map f [x:xs] = [f x : map f xs] (4)
flatten :: [[a]] -> [a]
flatten [] = [] (5)
flatten [x:xs] = x ++ (flatten xs) (6)
1.
Te bewijzen:
voor iedere functie f, eindige lijst as en bs:
map f (as ++ bs) = (map f as) ++ (map f bs)
Bewijs:
2.
Te bewijzen:
voor iedere functie f, voor iedere eindige lijst xs:
flatten (map (map f) xs) = map f (flatten xs)
Bewijs:
|