Erweiterter Datentyp
Ein Datentyp für Fehler- und Erfolgsfall
Statt Fehler einfach mit Nothing zu signalisieren,
könnte man auch einen eigenen Datentyp definieren, der sowohl den
Erfolg als auch die Fehlerfälle beschreibt:
type Maxpuls
= Puls Int
| Fehler String
Im Erfolgsfall wird der berechnete Puls zurückgegeben, im Fehlerfall wird ein Fehler mit einer Beschreibung zurückgegeben. Die Funktion kann dann so implementiert werden:
maxpuls : Int -> Maxpuls
maxpuls alter =
if alter < 0 then
Fehler "negativer Wert"
else if alter < 12 then
Fehler "nicht sinnvoll bei jungen Kindern"
else if alter < 130 then
Puls (220 - alter)
else
Fehler "unrealistisches Alter"
Aufgabe 1
Teste die Anwendung der Funktion maxpuls und erkläre
ihre Funktionsweise in Verbindung mit dem neu definierten Datentyp Maxpuls.