1.12 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.12.1 signature
syntax
(signature sig)
Diese Form liefert die Signatur mit der Notation sig.
1.12.2 Signaturdeklaration
syntax
(: id sig)
Diese Form erklärt sig zur gültigen Signatur für id.
1.12.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.
procedure
(integer-from-to low high) → signature?
low : integer? high : integer?
Signatur für ganze Zahlen zwischen low und high.
syntax
Signatur für ganze, nichtnegative Zahlen.
syntax
Signatur für boolesche Werte.
syntax
Signatur für #t.
syntax
Signatur für #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.12.4 predicate
syntax
(predicate expr)
Bei dieser Signatur muss expr als Wert ein Prädikat haben, also
eine Funktion, 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.12.5 enum
syntax
(enum expr ...)
Diese Signatur ist für einen Wert gültig, wenn er gleich dem Wert eines
der expr ist.
1.12.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.12.7 Funktions-Signatur
syntax
syntax
(sig ... -> sig)
Diese Signatur ist dann für einen Wert gültig, wenn dieser eine
Funktion ist. Er erklärt außerdem, dass die Signaturen vor dem ->
für die Argumente der Funktion gelten und die Signatur nach dem ->
für den Rückgabewert.
}
1.12.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.12.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.