HTWK Leipzig, Fakult¨at IMN
Prof. Dr. Sibylle Schwarz sibylle.schwarz@htwk-leipzig.de 9. Praktikum zur Vorlesung
”Deklarative Programmierung“
Sommersemester 2015 gestellt am 17. Juni 2015
Aufgabe 9.1:
Uberlegen Sie (ohne Computer), welche Funktionen hier mit Hilfe der in der Vorlesung¨ vorgestellten Funktionen h¨oherer Ordnung definiert werden:
a. map (+2)
b. fold False (||)
c. fold False (\ x y -> y || (mod x 2 == 0) ) d. fold 0 (+) . map (\ x -> x * x)
e. fold 0 (+) . map (\ x -> x * x) . filter (\ x -> (mod x 2 == 0) ) Uberlegen Sie sich zun¨¨ achst, welchen Typ die Funktionen haben und bestimmen Sie die Funktionswerte f¨ur einige geeignet gew¨ahlte Argumente.
Aufgabe 9.2:
Definieren Sie alle Funktionen aus den Aufgaben 5.1.a, 5.3 und 6.1 mit Hilfe geeigneter Funktionen h¨oherer Ordnung.
Aufgabe 9.3:
Definieren Sie
a. die folgenden Funktionen auf Listen mit Hilfe der Funktionfold:
append, reverse,map, filter.
b. auf Bin¨arb¨aumen:
die in der Vorlesung vorgestellte Funktion tmapdurch die Funktion tfold.
Aufgabe 9.4:
a. Wiederholen Sie das Rekursionsschema zu Peano-Zahlen.
b. Definieren Sie (analog zur in der Vorlesung f¨ur Listen vorgestellten Funktion h¨oherer Ordnung fold) eine geeignete Funktion h¨oherer Ordnung pfold f¨ur das Rekursions- schema der Peano-Zahlen.
c. Definieren Sie Addition, Multiplikation und Subtraktion von Peano-Zahlen mit Hilfe dieser Funktion pfold.
Ubungsaufgaben, Folien und weitere Hinweise zur Vorlesung finden Sie online unter¨ www.imn.htwk-leipzig.de/~schwarz/lehre/ss15/dp.