Home
 

Blatt 5

Blatt 5

Bei den folgenden Aufgaben sollen Sie Gebrauch machen von Standardfunktionen zur Listenverarbeitung wie take, map, fold, filter, ...

1.
Geben Sie so eine neue Definition der ``how_many'' Funktion des Beispiels aus 3.3.
2.
Eine Liste wird sortiert, indem man sie in zwei (im Idealfall gleich große) Teillisten zerlegt, diese (nach demselben Verfahren) sortiert und dann wieder in geeigneter Weise vereinigt, z.B.:
(a)
merge sort:

Teilung = Halbierung der Liste,
Vereinigung = ordnungstreue Verzahnung (``merge'') der beiden sortierten Listen.

(b)
quick sort:

Teilung durch Vergleich mit Trennelement (z.B. erstes Element der Liste),
Vereinigung durch Konkatenation der sortierten Listen.

(Hinweis: man kann die Aufspaltung mit zwei ``filter'' Anwendungen, aber vielleicht auch in einem Durchlauf machen).

3.
Um die Liste aller Permutationen einer Liste x:xs zu berechnen (das ist dann eine Liste von Listen), kann man wie folgt vorgehen:

erstens, finde alle Permutationen von xs,
zweitens, setze x auf alle denkbaren Weisen in jede der Permutationen ein.



Ronald Blaschke
1998-04-19