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"

    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.

Suche

v
8.2.2.9.2.2 Erweiterter Datentyp
Kopieren durch Anklicken

Rückmeldung geben