1.13 Signaturen
On this page:
1.13.1 signature
signature
1.13.2 Signaturerklärung
:
number
real
rational
integer
natural
boolean
true
false
string
empty-list
property
1.13.3 predicate
predicate
1.13.4 one-of
one-of
1.13.5 mixed
mixed
1.13.6 Prozedur-Signatur
->
1.13.7 list
list
1.13.8 Signatur-Variablen
1.13.9 combined
combined

1.13 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.13.1 signature

(signature sig)
Diese Form liefert die Signatur mit der Notation sig.

1.13.2 Signaturerklärung

(: id sig)
Diese Form erklärt sig zur gültigen Signatur für id.

Signatur für beliebige Zahlen.

Signatur für reelle Zahlen.

Signatur für rationale Zahlen.

Signatur für ganze Zahlen.

Signatur für ganze, nichtnegative Zahlen.

Signatur für boolesche Werte.

Signatur für \scheme[#t].

Signatur für \scheme[#f].

Signatur für Zeichenketten.

Signatur für die leere Liste.

signature
Signatur für Signaturen.

Signatur für Eigenschaften.

1.13.3 predicate

(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.13.4 one-of

(one-of expr ...)
Diese Signatur ist für einen Wert gültig, wenn er gleich dem Wert eines der expr ist.

1.13.5 mixed

(mixed sig ...)
Diese Signatur ist für einen Wert gültig, wenn er für eine der Signaturen sig gültig ist.

1.13.6 Prozedur-Signatur

(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.13.7 list

(list sig)
Diese Signatur ist dann für einen Wert gültig, wenn dieser eine Liste ist, für dessen Elemente sig gültig ist.

1.13.8 Signatur-Variablen

%a
%b
%c
...
Dies ist eine Signaturvariable: sie steht für eine Signatur, die für jeden Wert gültig ist.

1.13.9 combined

(combined sig ...)
Diese Signatur ist für einen Wert gültig, wenn sie für alle der Signaturen sig gültig ist.