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.