Übungsblatt

Werbung
Technische Universität München
Institut für Informatik
Prof. Manfred Broy
Dr. K. Spies, Dr. M. Kuhrmann,
Dr. W. Sitou, L. Heinemann, D. Thoma
SS 2009
9. Juli 2008
Übungsblatt 9
Übungen zu
Grundlagen der Programm- und Systementwicklung“
”
Aufgabe 1 Funktionen höherer Stufe
Seien die Funktionen f , g und add gegeben:
f : ((N at → N at), N at → Bool), Bool → (N at → N at)
g : (N at → Bool), (N at → N at → Bool) → Seq α → Bool
add : (N at → N at) → N at
(a) Welche Stufen haben diese funktionalen Sorten?
(b) Besprechen Sie die Anwendungen der curry-Funktion zu den Funktionen f , g und
add. Auf welche der Funktionen kann die curry-Funktion angewandt werden bzw.
wann macht eine solche Anwendung überhaupt Sinn?
Aufgabe 2 Funktionen höherer Stufe und Unterspezifikation
Schreiben Sie eine Sortierfunktion für eine Liste mit folgenden Eigenschaften:
Der Typ der Listenelemente ist unterspezifiziert.
Die Eigenschaft, nach der die Liste sortiert sein soll, ist unterspezifiziert.
1
Aufgabe 3 Rekursive Funktionen auf unendlichen Sequenzen
Gegeben sei eine unendliche Sequenz von natürlichen Zahlen, dargestellt als eine Funktion
Nat → Nat. (Diese Funktion bildet die Position in der Sequenz auf den Eintrag ab.) Wir
definieren die Funktion search, die das erste Vorkommen einer gegebener Zahl in der
Sequenz findet:
fct search = (x : Nat, seq: Nat -> Nat) Nat:
search_from_index (x, seq, 0);
fct search_from_index (x : Nat, seq: Nat -> Nat, start : Nat) Nat:
if (seq(start)=x) then start
else search_from_index (x, seq, start+1)
fi;
(a) Stellen Sie die Funktionen search from index0 , search from index1 ,
search from index2 , . . . auf, die die Funktion search from index approximieren.
(b) Stellen Sie eine Hypothese auf, wie der Grenzwert search from index∞ aussieht.
(c) Beweisen Sie, dass dieser Grenzwert tatsächlich der kleinste Fixpunkt ist.
(d) Für welche Werte der Eingabeparameter terminiert die Funktion? Stellen Sie für diese Werte eine Abstiegsfunktion auf und beweisen Sie, dass es sich dabei tatsächlich
um eine Abstiegsfunktion handelt.
2
Herunterladen