Universit¨at Siegen
Lehrstuhl Theoretische Informatik Carl Philipp Reh
Funktionales Programmieren SS 2020
Ubungsblatt 4¨
Aufgabe 1. Betrachten Sie folgende Definition von B¨aumen:
data Tree a = Node a [ Tree a ]
(a) Implementieren Sie F o l d a b l e f¨ur Tree.
(b) Implementieren Sie ein geeignetes Monoid zum Summieren.
(c) Summieren Sie alle Werte eines Baums auf, indem Sie f o l d M a p und das soeben definierte Monoid zum Summieren verwenden.
Aufgabe 2. Bei F o l d a b l e hat man die Wahl, f o l d M a p oder f o l d r zu implementieren.
(a) Implementieren Sie f o l d M a p ¨uberf o l d r, was wir foldMap ’ nennen.
(b) Implementieren Sie f o l d r ¨uber f o l d M a p, was wir foldr ’ nennen.
Welches Monoid m¨ussen Sie hier verwenden?
Aufgabe 3. Implementieren Sie folgendes Programm: Fragen Sie den Be- nutzer nach seinem Alter und geben Sie aus, ob dieser vollj¨ahrig ist. Achten Sie darauf, dass der Benutzer kein negatives Alter eingibt.
1