i

Übungen: Currying und partielle Funktionsanwendung


Aufgabe 1: Programmmitteilungen

Bestehende Datei - currying.rkt

Für eine neue Software soll den Benutzenden für bestimmte Ereignisse Ausgaben auf dem Bildschirm angezeigt werden. Die Ausgaben sollen dabei immer der folgenden Form entsprechen:

Ereignistyp: Mitteilung
Der Inhalt der Mitteilungen kann von den verantwortlichen Entwickler:innen individuell festgelegt werden. Für den Ereignistyp gibt es dagegen vier festgelegte Möglichkeiten:
Ereignistyp Nutzungsfall
Fehler Eine Mitteilung, die angibt, dass eine Operation des Programms nicht erfolgreich durchgeführt werden konnte.
Warnung Eine Mitteilung, die auf mögliche Probleme hinweist.
Info Eine Mitteilung, die Informationen über den Stand des Programmes liefert.
Tipp Eine Mitteilung, die den Benutzenden Tipps für die Verwendung des Programms liefert.
Zwei exemplarische Ausgaben wären beispielsweise:

Fehler: Datei konnte nicht gefunden werden
Info: Download abgeschlossen


(a) Erstelle eine geeignete gecurryte Funktion, die dir bei Übergabe des Ereignistyps und der Mitteilung eine korrekt formatierte Ausgabe zurückgibt.

(b) Definiere durch eine partielle Funktionsanwendung vier geeignete Funktionen, die die verschiedenen Ereignistypen abdecken.


Aufgabe 2: Zeichenersetzen

Bestehende Datei - currying.rkt

Eine hilfreiche Funktionalität beim Arbeiten mit Texten ist die Möglichkeit, ausgewählte Zeichen durch andere Zeichen zu ersetzten. Ein möglicher Racket-Aufruf könnte wie folgt aussehen:

(ersetze-durch "H" "M" "Haus")
;gewünschtes Ergebnis: "Maus"

(ersetze-durch "r" "o" "Brot")
;gewünschtes Ergebnis: "Boot"

(a) Erstelle eine geeignete gecurryte Funktion, die dir analog zum obigen Beispiel einzelne Zeichen durch andere Zeichen ersetzt.
Tipp: Die Funktion string->strings-list wandelt einen String in eine Liste um, in der jedes Zeichen einzeln als String gespeichert ist. Mit einem geeignete fold-Ausdruck, kann man daraus wieder einen zusammenhängenden String erzeugen.

(b) Definiere durch eine partielle Funktionsanwendung eine Funktion, die alle Leerzeichen durch Unterstriche ersetzt.

(c) Definiere durch partielle Funktionsanwendungen geeignete Funktionen, die die deutschen Umlaute entsprechend der Tabelle umwandeln:

Umlaut Zu ersetzen durch
ä ae
ö oe
u ue
ß ss

(d) Definiere dir eine Funktion, die alle deutschen Umlaute für einen übergeben String umwandelt.
Teste deine Implementation anhand des folgenden Satzes:

(define satz
  "Die größte Verblüffung für den müden Schüler war der glänzende Löwe.")

Suche

v
100.137.5.1.1.3 Übungen: Currying und partielle Funktionsanwendung
Kopieren durch Anklicken

Rückmeldung geben