i

Funktionen höherer Ordnung

Ähnlichkeiten zwischen String und List

Auch wenn die Datentypen String und List Char nicht die selben sind, gibt es doch einige Ähnlichkeiten zwischen Zeichenketten und Listen von Zeichen. Deshalb gibt es einige Funktionen - darunter auch Funktionen höherer Ordnung, die in den Modulen String und List existieren.

Beispiele für solche Funktionen sind String.map und String.filter.

Aufgabe 1

(a) Überlege welche Signatur die Funktion String.map haben muss und überprüfe in der REPL. Vergleiche mit der Signatur von List.map.

(b) Schreibe mit Hilfe der Funktion String.map einen Ausdruck, der eine Zeichenkette nach dem Caesar-Verfahren verschlüsselt.

Caesar für Großbuchstaben

Das Caesar-Verfahren funktioniert - zumindest in unserer Variante - nur für Großbuchstaben. Wenn du andere Zeichen eingibst, erhältst du zwar Zeichen, diese machen aber keinen Sinn. Mit Hilfe einer Funktion, die erkennt, ob ein Zeichen ein Großbuchstabe ist, kannst du die gültigen Zeichen filtern.

istGrossbuchstabe : Char -> Bool
istGrossbuchstabe zeichen =
    -- ist Zeichen zwischen 'A' und 'Z'?

Aufgabe 2

Implementiere die Funktion istGrossbuchstabe und nutze sie, um einen Ausdruck zu schreiben, der eine beliebige Zeichenkette nach dem Caesar-Verfahren verschlüsselt. Alle Zeichen außer Großbuchstaben sollen ignoriert werden. Der Aufruf des Ausdrucks soll also z.B. folgendes Ergebnis liefern:
> ... "HALLO - ja, ich sage: HALLO"
"KDOORKDOOR" : String

Suche

v
8.2.2.3.2.1.2
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/listen/caesar/lernstrecke/stringmap
dev.inf-schule.de/8.2.2.3.2.1.2
dev.inf-schule.de/@/page/7swriUn3Ucy0FYoV

Rückmeldung geben