i

Übungen

Aufgabe 1

Der folgende REPL-Dialog verdeutlicht das Verhalten der vordefinierten Funktionen List.minimum und List.maximum.

> List.minimum [6,4,12,5] 
Just 4 : Maybe number
> List.maximum [6,4,12,5]
Just 12 : Maybe number

Warum liefern die beiden Funktionen Daten vom Typ Maybe number? Für welche Liste wird wohl der Datenwert Nothing zurückgegeben?

Aufgabe 2

Der folgende REPL-Dialog verdeutlicht das Verhalten einer Funktionen elementAnPos.

> elementAnPos
<function> : Int -> List a -> Maybe a
> elementAnPos 0 ['a','b','c','d']
Just 'a' : Maybe Char
> elementAnPos 3 ['a','b','c','d']
Just 'd' : Maybe Char
> elementAnPos 4 ['a','b','c','d']
Nothing : Maybe Char
> elementAnPos -2 ['a','b','c','d']
Nothing : Maybe Char

Entwickle eine Funktionsdefinition. Nutze dazu vordefinierte Funktionen aus dem Modul List. Du findest die Dokumentation zu List unter https://package.elm-lang.org/packages/elm/core/latest/List.

Aufgabe 3

(a) Schreibe eine Funktion, die ein Maybe-Element eines beliebigen Typs entgegennimmt und den Wert des Elements zurückgibt, falls es vorhanden ist. Andernfalls - wenn der Wert also Nothing ist - soll die Funktion einen Standardwert zurückgeben. Ein Aufruf erfolgt zum Beispiel wie folgt:

> wertVon "Gast" (Just "Otto")
"Otto" : String
> wertVon "Gast" Nothing
"Gast" : String

(b) Vergleiche deine Lösung mit der Implementierung der Funktion Maybe.withDefault aus dem Modul Maybe. Du findest die Dokumentation zu Maybe unter https://package.elm-lang.org/packages/elm/core/latest/Maybe. Den Quellcode von Maybe.withDefault findest du, wenn du auf den Link Source klickst und dann im Ordner src nach Maybe.elm suchst.

Aufgabe 4

Schreibe eine Funktion, die zwei Zahlen übergeben bekommt und vielleicht einen Gewinn zurückgibt - nämlich, dann wenn die Zahlen gleich sind. Wie der Gewinn genau aussieht, bleibt dir überlassen.

Suche

v
8.2.2.9.2
inf-schule.de/deklarativ/fp_elm/elm_programme/fehlerbehandlung/uebungen
inf-schule.de/8.2.2.9.2
inf-schule.de/@/page/P6LUxxpHkiKszTQm

Rückmeldung geben