;; Die ersten drei Zeilen dieser Datei wurden von DrRacket eingefügt. Sie enthalten Metadaten ;; über die Sprachebene dieser Datei in einer Form, die DrRacket verarbeiten kann. #reader(lib "DMdA-beginner-reader.ss" "deinprogramm")((modname stringlist) (read-case-sensitive #f) (teachpacks ()) (deinprogramm-settings #(#f write repeating-decimal #f #t none explicit #f ()))) ; Stringlisten: (stringlist) ; Eine nicht-leere Zahlenliste nonempty-numlist) besteht aus ; - einem ersten Element (number) ; - einer Restliste (numlist) (define-record-procedures nonempty-stringlist cons ;statt make-nonempty-numlist cons? (first rest)) ; Eine Zahlenlist ist eins der folgenden: ; - eine leere Liste (empty-list) ; - eine nicht-leere Zahlenliste (nonempty-stringlist) (define stringlist (signature (mixed empty-list nonempty-stringlist))) (: cons (string stringlist -> nonempty-stringlist)) (: cons? (any -> boolean)) (: first (nonempty-stringlist -> string)) (: rest (nonempty-stringlist -> stringlist))