1.11 Signaturen
Signaturen können statt der Verträge aus dem Buch geschrieben werden: Während Verträge reine Kommentare sind, überprüft DrRacket Signaturen und meldet etwaige Verletzungen.
1.11.1 signature
syntax
(signature sig)
Diese Form liefert die Signatur mit der Notation sig.
1.11.2 Signaturdeklaration
syntax
(: id sig)
Diese Form erklärt sig zur gültigen Signatur für id.
1.11.3 Eingebaute Signaturen
syntax
Signatur für beliebige Zahlen.
syntax
Signatur für reelle Zahlen.
syntax
Signatur für rationale Zahlen.
syntax
Signatur für ganze Zahlen.
syntax
Signatur für ganze, nichtnegative Zahlen.
syntax
Signatur für boolesche Werte.
syntax
Signatur für \scheme[#t].
syntax
Signatur für \scheme[#f].
syntax
Signatur für Zeichenketten.
syntax
Signatur, die auf alle Werte gültig ist.
syntax
signature
Signatur für Signaturen.
syntax
Signatur für Eigenschaften.
1.11.4 predicate
syntax
(predicate expr)
Bei dieser Signatur muß expr als Wert ein Prädikat haben, also
eine Prozedur, die einen beliebigen Wert akzeptiert und entweder #t
oder #f zurückgibt.
Die Signatur ist dann für einen Wert gültig, wenn das Prädikat, darauf angewendet,
#t ergibt.
1.11.5 enum
syntax
(enum expr ...)
Diese Signatur ist für einen Wert gültig, wenn er gleich dem Wert eines
der expr ist.
1.11.6 mixed
syntax
(mixed sig ...)
Diese Signatur ist für einen Wert gültig, wenn er für eine der Signaturen
sig gültig ist.
1.11.7 Prozedur-Signatur
syntax
syntax
(sig ... -> sig)
Diese Signatur ist dann für einen Wert gültig, wenn dieser eine
Prozedur ist. Er erklärt außerdem, daß die Signaturen vor dem ->
für die Argumente der Prozedur gelten und die Signatur nach dem ->
für den Rückgabewert.
}
1.11.8 Signatur-Variablen
syntax
%a
syntax
%b
syntax
%c
syntax
...
Dies ist eine Signaturvariable: sie steht für eine Signatur, die für jeden Wert gültig ist.
1.11.9 combined
syntax
(combined sig ...)
Diese Signatur ist für einen Wert gültig, wenn sie für alle der Signaturen
sig gültig ist.