19500 V Algorithmen und Programmieren I
|
Rojas
|
Zeigen Sie, dass für die Funktion
sumList [] = 0 sumList (b:y) = b + sumList yfür alle endlichen Listen x und y die Gleichungen
a) sumList (x ++ y) = sumList x + sumList y
undb) sumList (x ++ y) = sumList (y ++ x)
gelten.
Beweisen Sie, dass für die Funktion
double [] = [] double (b:y) = (2*b) : double yfür alle endlichen Listen x und y die Gleichung
double (x ++ y) = double x ++ double y
gilt.
Zeigen Sie, dass für die Funktion length für alle endlichen Listen x und y die Gleichung
a) length (x ++ y) = length x + length y
und für alle endlichen Listen x die Gleichung
b) length (double x) = length x
gilt.
Beweisen Sie durch Induktion über x, dass für alle endlichen Listen x und y die Gleichung
sumList (x ++ (a:y)) = a + sumList (x ++ y)
gilt.
Beweisen Sie (evtl. mit Hilfe von Aufgabe 4), dass für alle endlichen Listen x die Gleichung
sumList (double x) = sumList (x ++ x)
gilt.
Die Funktion
concat [] = [] concat (c:z) = c ++ concat zglättet eine Liste von Listen. Zeigen Sie, dass für alle w die Gleichung
concat [w] = w
und für alle endlichen Listen x und y die Gleichungconcat (x ++ y) = concat x ++ concat y
gilt.