Vorlesung: Praxis der Funktionalen Programmierung


Zweimal ist einmal

Wir betrachten eine überraschende Anwendung des fmap auf binären Bäumen. (Hat eigentlich nicht viel mit fmap zu tun, sondern viel mehr mit lazy evaluation. Egal, trotzdem lustig.)

Wir lösen die Aufgabe: gegeben ist ein t :: Tree a, gesucht ist ein Baum s gleicher Form wie t, der in jedem Knoten das Maximum aller Schlüsselwerte von t enthält (also überall die gleiche Zahl).

Das ist überhaupt nicht schwer:

#include "../src/Simple_Zweimal.hs"
Der Witz ist aber, daß es auch eine Lösung gibt, die den Baum nur einmal durchläuft. Dieses Programm wurde von Richard Bird gefunden. Wichtiger Mann für die Funktionale Programmierung.
#include "../src/Einmal_Zweimal.hs"

best viewed with any browser


http://www.informatik.uni-leipzig.de/~joe/ mailto:joe@informatik.uni-leipzig.de