► |  | Sprachebenen und Material zu Die Macht der Abstraktion

1 | Die Macht der Abstraktion - Anfänger
2 | Die Macht der Abstraktion
3 | Die Macht der Abstraktion mit Zuweisungen
4 | Die Macht der Abstraktion fortgeschritten
5 | Konstruktionsanleitungen 1 bis 10
6 | Bilder konstruieren: "image.ss"
7 | Animationen: "world.ss"
8 | Turtle-Grafik: "turtle.ss"
9 | Abspielen von Audio-Dateien: "sound.ss"
10 | 3D-Liniengraphik: "line3d.ss"
11 | DMd A: Sprachen als Libraries
| Index

▼ | 1 | Die Macht der Abstraktion - Anfänger

1.1 | Definitionen
1.2 | Record-Typ-Definitionen
1.3 | Prozedurapplikation
1.4 | #t and #f
1.5 | lambda
1.6 | Bezeichner
1.7 | cond
1.8 | if
1.9 | and
1.10 | or
1.11 | let, letrec und let*
1.12 | begin
1.13 | Verträge
1.14 | Testfälle
1.15 | Parametrische Record-Typ-Definitionen
1.16 | Eigenschaften
1.17 | Primitive Operationen

► | 1.13 | Verträge

1.13.1 | contract
1.13.2 | Vertragserklärung
1.13.3 | predicate
1.13.4 | one-of
1.13.5 | mixed
1.13.6 | Prozedur-Vertrag
1.13.7 | list
1.13.8 | Vertrags-Variablen
1.13.9 | combined

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

top← prev up next →

#### 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.

number

Vertrag für beliebige Zahlen.

real

Vertrag für reelle Zahlen.

rational

Vertrag für rationale Zahlen.

integer

Vertrag für ganze Zahlen.

natural

Vertrag für ganze, nichtnegative Zahlen.

boolean

Vertrag für boolesche Werte.

true

Vertrag für \scheme[#t].

false

Vertrag für \scheme[#f].

string

Vertrag für Zeichenketten.

empty-list

Vertrag für die leere Liste.

contract

Vertrag für Verträge.

property

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.
top← prev up next →