1.15 Parametrische Record-Typ-Definitionen
(define-record-procedures-parametric t cc c p (s1 ...)) |
Die define-record-procedures-parametric ist wie
define-record-procedures. Zusäzlich wird der Bezeichner
cc an einen Vertragskonstruktor gebunden: Dieser akzeptiert
für jedes Feld einen Feld-Vertrag und liefert einen Vertrag, den nur
Records des Record-Typs t erfüllen, bei dem die Feldinhalte
die Feld-Verträge erfüllen.
Beispiel:
(define-record-procedures-parametric pare pare-of |
make-pare pare? |
(pare-one pare-two)) |
Dann ist (pare-of integer string) der Vertrag für pare-Records, bei dem die Feldinhalte die Verträge integer bzw. string erfüllen müssen.
Die Verträge für die Feldinhalte werden erst überprüft, wenn ein Selektor aufgerufen wird.