Funktionale Programmierung WS07/08 E. Fehr Aufgabenblatt 6 Abgabe bis Dienstag, dem 27.11.2007 Aufgabe 1) a) Schreiben Sie eine Haskell-Funktion dreieck, die zu gegebener Höhe n ein Dreieck der Form * *** ***** ... *********** n ausdruckt. b) Schreiben Sie eine Haskell-Funktion tree, die zu gegebener Höhe n einen Baum der Form * *** ***** ... *********** * n ausdruckt. c) Schreiben Sie eine Haskell-Funktion baumReihe, die zu gegebener Liste mit Höhenangaben ein Bild erzeugt, in dem Bäume mit den angegebenen Höhen nebeneinander stehen. Beispiel: baumReihe [2,3] ergibt * *** * * *** ***** * Aufgabe 2) a) Definieren Sie einen Datentyp Matrix in Haskell, dessen Wertebereich zur Darstellung von Matrizen dient. ! −2 0 1 −2 0 Beispiel: A = ist eine (2 × 3)-Matrix. B = −4 1 ist −1 1 2 8 3 eine (3 × 2)-Matrix. b) Definieren Sie die Addition von Matrizen in Haskell. ! 2 −4 0 Beispiel: A + A = −2 2 4 c) Definieren Sie die Multiplikation von Matrizen in Haskell. Verwenden Sie dabei die Funktion sp aus der Vorlesung zur Berechnung des Skalarprodukts. Die Matrizenmultiplikation ist wie folgt definiert: Wenn A eine n × m-Matrix ist und B eine (r × n)-Matrix ist, dann ist C das Produkt von A und B mit cij = sp (i-te Zeile von A) (j-te Spalte von B).