;; 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 ()))) ; Listen von Strings definieren ; Eine nicht-leere Stringliste besteht aus ; - einem String (1. Element, Kopf der Liste) ; - einer Stringliste (define-record-procedures nonempty-stringlist cons cons? (first rest)) ; Eine Stringliste ist eins der Folgenden: ; - eine leere Liste ; - eine nicht-leere Stringliste (define stringlist (signature (mixed empty-list nonempty-stringlist))) (: cons (string stringlist -> nonempty-stringlist)) (: cons? (any -> boolean)) (: first (nonempty-stringlist -> string)) (: rest (nonempty-stringlist -> stringlist)) (: hw stringlist) (define hw (cons "Hello" (cons "World" empty)))