► |  | Sprachebenen und Material zu Schreibe Dein Programm!

1 | Schreibe Dein Programm! - Anfänger
2 | Schreibe Dein Programm!
3 | Schreibe Dein Programm! - fortgeschritten
4 | Konstruktionsanleitungen
5 | sdp: Sprachen als Libraries
| Index

▼ | 1 | Schreibe Dein Programm! - Anfänger

1.1 | Definitionen
1.2 | Record-Typ-Definitionen
1.3 | Record-Typ-Definitionen mit Signatur-Parametern
1.4 | Record-Typ-Definition, alte Form
1.5 | Funktionsapplikation
1.6 | #t and #f
1.7 | lambda / λ
1.8 | Bezeichner
1.9 | cond
1.10 | if
1.11 | and
1.12 | or
1.13 | Signaturen
1.14 | Testfälle
1.15 | Pattern-Matching
1.16 | Eigenschaften
1.17 | Primitive Operationen

► | 1.13 | Signaturen

1.13.1 | signature
1.13.2 | Signaturdeklaration
1.13.3 | Eingebaute Signaturen
1.13.4 | predicate
1.13.5 | enum
1.13.6 | mixed
1.13.7 | Funktions-Signatur
1.13.8 | Signatur-Variablen
1.13.9 | combined

On this page:

1.13.1`` signature
signature
1.13.2`` Signaturdeklaration
:
1.13.3`` Eingebaute Signaturen
number
real
rational
integer
integer-from-to
natural
boolean
true
false
string
any
property
1.13.4`` predicate
predicate
1.13.5`` enum
enum
1.13.6`` mixed
mixed
1.13.7`` Funktions-Signatur
->
1.13.8`` Signatur-Variablen
1.13.9`` combined
combined

top ← prev up next →

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

> > syntax

> > (signature sig)

Diese Form liefert die Signatur mit der Notation sig.

##### 1.13.2`` Signaturdeklaration

> > syntax

> > (: id sig)

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

##### 1.13.3`` Eingebaute Signaturen

> > syntax

> > number

Signatur für beliebige Zahlen.

> > syntax

> > real

Signatur für reelle Zahlen.

> > syntax

> > rational

Signatur für rationale Zahlen.

> > syntax

> > integer

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

> > natural

Signatur für ganze, nichtnegative Zahlen.

> > syntax

> > boolean

Signatur für boolesche Werte.

> > syntax

> > true

Signatur für #t.

> > syntax

> > false

Signatur für #f.

> > syntax

> > string

Signatur für Zeichenketten.

> > syntax

> > any

Signatur, die auf alle Werte gültig ist.

> > syntax

> > signature

Signatur für Signaturen.

> > syntax

> > property

Signatur für Eigenschaften.

##### 1.13.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.13.5`` enum

> > syntax

> > (enum expr ...)

Diese Signatur ist für einen Wert gültig, wenn er gleich dem Wert eines der expr ist.

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