Der Pipe-Operator
Groß- in Kleinbuchstaben umwandeln
Die Umwandlung von Groß- in Kleinbuchstaben kann man mit Hilfe von drei hintereinander ausgeführten Funktionen umsetzen:
Char.toCode 'G' -> 71 ((+) 32) 71 -> 103 Char.fromCode 103 -> 'g'
Der REPL-Dialog zeigt eine Implementierung mit ineinandergeschachtelten Funktionsaufrufen.
> grossNachKlein = \b -> Char.fromCode (((+) 32) (Char.toCode b))
<function> : Char -> Char
> grossNachKlein 'G'
'g' : Char
Lesbarer wird das Hintereinanderschalten von Funktionsaufrufen, wenn man den Pipe-Operator |>
verwendet.
Dieser Operator reicht die Rückgabe der Vorgängerfunktion an die Nachfolgerfunktion (bei mehreren Parametern an den letzten) weiter.
> grossNachKlein = ( \b -> b |> Char.toCode |> ((+) 32) |> Char.fromCode )
<function> : Char -> Char
> grossNachKlein 'G'
'g' : Char
Aufgabe 1
Teste die gezeigte Implementierung der Umwandlung von Groß- in Kleinbuchstaben.
Aufgabe 2
Entwickle analog eine Umwandlung von Klein- in Großbuchstaben.
Hinweis: Beachte, dass die Funktion (-) 32
nicht das Gewünschte leistet. Benutze stattdessen eine anonyme Funktion vom Typ ( \x -> ... )
.