Definition eigener Datentypen
Spezifische Signaturen
Schauen wir uns erneut die Signaturen unserer im vorangegangenen Kapitel entworfenen Funktionen an:
;Signatur der Funktion bromthymolblau-pHZustand
(: bromthymolblau-pHZustand (string -> string))
;Signatur der Funktion prozent-zu-mss
(: prozent-zu-mss (natural -> natural))
Anhand der Signatur erkennen wir bereits welche Datentypen die einzelnen Funktionen übergeben bekommen und zurückgeben.
Wir wissen jedoch bereits im Vorfeld, dass nur eine kleine Teilmenge der möglichen Daten, tatsächlich korrekte Übergabedaten bzw. Rückgabedaten für die Funktionen sind.
So kann Bromthymolblau nur drei verschiedene Farben annehmen und damit als Übergabe akzeptieren und
es gibt nur 16 zulässige MSS-Notenpunkten, die als Rückgabe in Frage kommen.
Im Sinne einer möglichst exakten Modellierung wäre es also wünschenswert, dass wir unsere Signatur noch weiter verfeinern könnten.
Spezifischere Signaturen könnten z.B. wie folgt aussehen:
;Signatur der Funktion bromthymolblau-pHZustand
(: bromthymolblau-pHZustand (bromthymolblauFarbe -> pHZustand))
;Signatur der Funktion prozent-zu-mss
(: prozent-zu-mss (prozent -> mss-punkte))
Natürlich sind dies keine von Racket standardmäßig verfügbare Datentypen.
Also entwerfen wir in den folgenden Kapiteln einfach unsere eigenen!