Morsecode berechnen
Morsecode automatisch erzeugen
Bisher hast du den Text MORSEN und den entsprechenden Morsecode
-- --- ·-· ··· · ·- manuell in die REPL eingegeben.
Der Morsecode soll aber natürlich automatisch berechnet werden.
Dazu benötigst du eine Funktion, die den Text in Morsecode umwandelt.
Gegeben ist eine Funktion charToMorse, die ein einzelnes Zeichen in Morsecode umwandelt.
Du musst die interne Struktur der Funktion nicht verstehen, vermutlich ist sie aber dennoch
nachvollziehbar, auch wenn du case-Ausdrücke noch nicht kennst.
charToMorse : Char -> String
charToMorse c =
case c of
'A' -> "·-"
'B' -> "-···"
'C' -> "-·-·"
'D' -> "-··"
'E' -> "·"
'F' -> "··-·"
'G' -> "--·"
'H' -> "····"
'I' -> "··"
'J' -> "·---"
'K' -> "-·-"
'L' -> "·-··"
'M' -> "--"
'N' -> "-·"
'O' -> "---"
'P' -> "·--·"
'Q' -> "--·-"
'R' -> "·-·"
'S' -> "···"
'T' -> "-"
'U' -> "··-"
'V' -> "···-"
'W' -> "·--"
'X' -> "-··-"
'Y' -> "-·--"
'Z' -> "--··"
_ -> " "
Aufgabe 1
Teste die Funktion
charToMorse in der REPL.
Aufgabe 2
Ergänze eine Funktion
stringToMorse, die eine Zeichenkette in Morsecode umwandelt.
<button class="schalter" schalterref="refID1">Hilfe</button>
<div class="versteckt" id="refID1">
<p>
Du kannst nicht die Funktion <code>String.map</code> verwenden,
da sie eine Funktion erwartet, die ein Char in ein Char umwandelt.
Die Funktion <code>charToMorse</code> wandelt aber ein Char in einen String um.
</p>
<p>
Du musst deshalb die Zeichenkette in eine Liste von Zeichen umwandeln.
Das geht mit der Funktion <code>String.toList</code>.
Anschließend kannst du die Liste der Zeichen
mit der Funktion <code>List.map</code> in eine Liste von Morsezeichen umwandeln.
Schließlich kannst du die Liste der Morsezeichen
mit der Funktion <code>String.join</code> zu einer Zeichenkette zusammenfügen
und dabei ein Leerzeichen als Trennzeichen verwenden.
</p>
</div>
Anschließend kannst du die Funktion stringToMorse nutzen,
um den Text MORSEN in Morsecode umzuwandeln, z.B.:
main =
div []
[ text "MORSEN"
, text " "
, text (stringToMorse "MORSEN")
]
Aufgabe 3
Passe dein bisheriges Programm so an,
dass es z.B. den Text
MORSEN und den entsprechenden Morsecode anzeigt.