s n h m r u
i

Fachkonzept: Records

Der Datentyp Records

Ein Record ist ein Datentyp der aus mehreren Daten besteht/zusammengesetzt ist. Man nennt Records daher auch zusammengesetzte Daten. Ein Rekord besteht aus mehreren Feldern die jeweils ein Datum des Records darstellen.

Zum Erstellen eines eigenen Record-Typs definieren wir eine Konstruktor-Funktion mit dem ein Record des neuen Record-Typs produziert werden kann, sowie die enthaltenen Felder. Für jedes Feld wird neben dem Datentyp eine Selektor-Funktion angegeben, mit welcher wir die Daten des Feldes für einen Record erhalten.

Die Definition eine Record-Typs erfolgt in einem define-record-Ausdruck. Dieser ist wie folgt aufgebaut:


(define-record nameDesRecordTyps
  make-nameDesRecordTyps
  (nameDesRecordTyps-feld-1 datentyp-1)
  ( ... )
  (nameDesRecordTyps-feld-n datentyp-n)
)
  1. Name des neuen Record-Typs
    Dieser Name bezeichnet den Record-Datentyp und wird unter anderem in Signaturen verwendet um zu beschrieben welche Struktur dem Datentyp zugrunde liegt.
  2. Konstruktor
    Diese Funktion erzeugt einen neuen Record. Sie erhält als Parameter für jedes Feld Daten vom entsprechenden Datentyp und gibt einen Record zurück.
  3. Die Felder des Record-Typs
    Diese bestimmen, aus welchen Informationen ein Record des definierten Record-Typs zusammengesetzt sein soll. Für ein Feld werden zwei Informationen angegeben:
    • Ein Selektor. Diese Funktion gibt auf einen Record angewandt, den Inhalt des entsprechenden Feldes zurück.
    • Der Datentyp des Feldes.

Beispiel:


(define-record schueler
  make-schueler
  (schueler-name string)
  (schueler-alter natural)
)

Konstruktor zur Erstellung eines Records:

(make-schueler "Anton" 16)

Selektion des Alters mittels Selektor:

(schueler-alter
  (make-schueler "Anton" 16)
)

Suche

v
100.137.2.3.1.4 Fachkonzept: Records
Kopieren durch Anklicken

Rückmeldung geben