Übungen
Aufgabe 1
Im folgenden REPL-Dialog fehlen die Ergebnisse.
(a) Stelle Vermutungen auf, was an Stelle der drei Punkte jeweils erscheint. Überprüfe, indem du den Dialog selbst führst.
(b) Der Dialog verdeutlicht auch, dass die beiden Funktionen ::
und ++
jeweils neue Listen erzeugen. Woran erkennt man das hier? Erläutere.
Aufgabe 2
Hier werden vordefinierte Listenfunktionen benutzt. Informiere dich vorab auf Elm - List, was die Funktionen leisten. Führe anschließend den folgenden REPL-Dialog aus und erkläre die Ergebnisse.
Hinweis: Man muss nicht alle diese vordefinierten Funktionen aktiv kennen. Man schlägt sie bei Bedarf in einer Dokumentation nach.
Aufgabe 3
(a) Im Folgenden sollen Funktionen zu Listen von geraden Zahlen geschrieben werden. Dazu benötigst du eine Funktion, die überprüft, ob eine Zahl eine gerade Zahl ist. Schreibe die Funktion gemäß folgender Signatur:
(b) Schreibe eine Funktion, die eine Liste aller geraden Zahlen bis n zurückgibt und sich folgendermaßen aufrufen lässt:
(c) Schreibe eine Funktion, die überprüft, ob eine Liste nur gerade Zahlen enthält. Nutze dazu die Dokumentation des Listen-Moduls. Die Anwendung in der REPL kann folgendermaßen aussehen:
(d) Schreibe analoge Funktionen für Vielfache von n. Deren Anwendung ergibt z.B.:
und
Aufgabe 4
(a) Schreibe eine Funktion, die überprüft, ob ein Zeichen ein Vokal ist. Berücksichtige dabei nur Großbuchstaben. Die Signatur der Funktion lautet:
(b) Schreibe eine Funktion, welche die Zahl der Vokale einer Zeichenkette ermittel. Ein Aufruf sieht dann beispielsweise so aus:
(c) Schreibe eine analoge Funktion für beliebige, einzelne Zeichen. Deren Anwendung ergibt z.B.:
Aufgabe 5
Die Ergebnisse von Lottoziehungen werden mit Hilfe von Listen verwaltet.
Entwickle eine Funktion, mit der man die relative Häufigkeit einer Zahl ermitteln kann:
Der Aufruf ergibt in diesem Fall z.B.: