1.13 Verträge
On this page:
1.13.1 contract
contract
1.13.2 Vertragserklä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-Vertrag
->
1.13.7 list
list
1.13.8 Vertrags-Variablen
1.13.9 combined
combined

1.13 Verträge

1.13.1 contract

(contract contr)
Diese Form liefert den Vertrag mit der Notation contr.

1.13.2 Vertragserklärung

(: id contr)
Diese Form erklärt contr zum gültigen Vertrag für id.

Vertrag für beliebige Zahlen.

Vertrag für reelle Zahlen.

Vertrag für rationale Zahlen.

Vertrag für ganze Zahlen.

Vertrag für ganze, nichtnegative Zahlen.

Vertrag für boolesche Werte.

Vertrag für \scheme[#t].

Vertrag für \scheme[#f].

Vertrag für Zeichenketten.

Vertrag für die leere Liste.

contract
Vertrag für Verträge.

Vertrag für Eigenschaften.

1.13.3 predicate

(predicate expr)
Bei diesem Vertrag muß expr als Wert ein Prädikat haben, also eine Prozedur, die einen beliebigen Wert akzeptiert und entweder #t oder #f zurückgibt. Der Vertrag ist dann für einen Wert gültig, wenn das Prädikat, darauf angewendet, #t ergibt.

1.13.4 one-of

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

1.13.5 mixed

(mixed contr ...)
Dieser Vertrag ist für einen Wert gültig, wenn er für einen der Verträge contr gültig ist.

1.13.6 Prozedur-Vertrag

(contr ... -> contr)
Dieser Vertrag ist dann für einen Wert gültig, wenn dieser eine Prozedur ist. Er erklärt außerdem, daß die Verträge vor dem -> für die Argumente der Prozedur gelten und der Vertrag nach dem -> für den Rückgabewert. }

1.13.7 list

(list contr)
Dieser Vertrag ist dann für einen Wert gültig, wenn dieser eine Liste ist, für dessen Elemente contr gültig ist.

1.13.8 Vertrags-Variablen

%a
%b
%c
...
Dies ist eine Vertragsvariable: sie steht für einen Vertrag, der für jeden Wert gültig ist.

1.13.9 combined

(combined contr ...)
Dieser Vertrag ist für einen Wert gültig, wenn er für alle der Verträge contr gültig ist.