Umkehrverfahren in der REPL
Umkehr-Verfahren
Auf dieser Seite werden wir uns damit beschäftigen, wie man Zeichenketten nach dem Umkehr-Verfahren verschlüsseln kann, z.B.:
HALLO -> ZOLLAHA ALLESKLAR -> ZRALKSELLAA
Zeichenketten verarbeiten
Zeichenketten werden in Elm mit doppelten Hochkommata dargestellt. Sie sind Daten vom Typ String
.
Zur Verarbeitung von Zeichenketten gibt es eine Vielzahl an vordefinierten Funktionen. Der folgende Dialog verdeutlicht eine kleine Auswahl. Weitere Funktionen findest du auf Elm - String.
> String.reverse "HALLO"
"OLLAH" : String
> String.append "HAL" "LO"
"HALLO" : String
Aufgabe 1
(a) Führe in der REPL entsprechende Dialoge durch, um die im Dialog oben verwendeten vordefinierten Funktionen zu erkunden.
(b) Beschreibe, was die Funktionen String.reverse
und String.append
leisten.
Gehe dabei auch auf die Signatur der Funktionen ein.
Zur Erinnerung: Die Signatur einer Funktion beschreibt den Typ der Eingabewerte und den Typ des Rückgabewertes.
Du findest die Signatur einer Funktion, wenn du den Namen der Funktion in der REPL eingibst
oder in der Dokumentation nachsiehst.
Aufgabe 2
Mit dem folgenden Ausdruck soll die Zeichenkette "HALLO"
nach dem Umkehrverfahren verschlüsselt werden.
Das Ergebnis stimmt jedoch nicht. Entwickle einen korrekten Ausdruck.
> String.append "A" (String.append "Z" (String.reverse "HALLO"))
"AZOLLAH" : String -- richtig wäre "ZOLLAHA"
Aufgabe 3
Hier zwei weitere Ausdrücke zum Verschlüsseln der Zeichenkette "HALLO"
. Recherchiere auf
Elm - String
die Bedeutung der vordefinierten Funktion String.cons
. Erkläre den Unterschied zur korrekten Lösung in Aufgabe 2.
> String.cons 'Z' (String.append (String.reverse "HALLO") "A")
"ZOLLAHA" : String
> String.cons 'Z' (String.append (String.reverse "HALLO") (String.cons 'A' ""))
"ZOLLAHA" : String