s n h m r u
i

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"
<pre><code>else if alter &lt; 12 then
    Fehler "nicht sinnvoll bei jungen Kindern"

else if alter &lt; 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.

Suche

v
8.2.2.9.2.2 Erweiterter Datentyp
Kopieren durch Anklicken

Rückmeldung geben