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.
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 eines 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) )
-  Name des neuen Record-Typs
 Dieser Name bezeichnet den Record-Datentyp und wird unter anderem in Signaturen verwendet, um zu beschreiben welche Struktur dem Datentyp zugrunde liegt.
-  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.
- 
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, der auf einen Record angewandt den Inhalt des entsprechenden Feldes zurückgibt.
- 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) )
