Der Datentyp Maybe
Die Typbeschreibung untersuchen
In der Dokumentation
(siehe Elm - Maybe)
findet man folgende Typbeschreibung für den Datentyp Maybe ....
type Maybe a
= Just a
| Nothing
Wenn man die Typvariable a mit Int konkretisiert, dann heißt das, dass es genau zwei Sorten von Daten
vom Datentyp Maybe Int gibt: Zum einen Daten wie Just 2 oder Just -4, die besagen,
dass genau die betreffende Int-Zahl gemeint ist. Zum anderen gibt es den Datenwert Nothing, der besagt,
dass es sich um nichts dergleichen (hier: um keine Int-Zahl) handelt.
Mit Daten vom Datentyp Maybe Int kann man genauso umgehen wie mit anderen Daten auch:
x : Maybe Int
x = Just 2
y : Maybe Int
y = Nothing
Wenn die beiden Werte x und y so definiert wurden,
lassen sie sich in der REPL wie folgt testen:
> x
Just 2 : Maybe Int
> y
Nothing : Maybe Int
Aufgabe 1
(a) Teste das selbst in der REPL.
(b) Teste analog den Datentyp Maybe Float oder Maybe String.
Pattern Matching
Um auf die Werte von Maybe-Daten zuzugreifen,
verwendet man Pattern Matching z.B. in der folgenden Art:
f : Maybe Int -> String
f wert =
case wert of
Nothing -> "Keine Zahl"
Just _ -> "Zahl"
g : Maybe Int -> Int
g wert =
case wert of
Nothing -> -1
Just n -> n
Aufgabe 2
Teste die beiden Funktionen in der REPL und erkläre wie sie funktionieren.