;; 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 anylist) (read-case-sensitive #f) (teachpacks ()) (deinprogramm-settings #(#f write repeating-decimal #f #t none explicit #f ()))) ; Eine nicht-leere Liste besteht aus ; - einem ersten beliebigem Element (any) ; - einer Restliste (Liste) (define-record-procedures nonempty-anylist cons cons? (first rest)) ; Eine Liste ist eins der Folgenden: ; - eine leere Liste (empyt-list) ; - eine nicht-leere Liste (nonempty-anylist) (define anylist (signature (mixed empty-list nonempty-anylist))) (: cons (any anylist -> nonempty-anylist)) (: cons? (any -> boolean)) (: first (nonempty-anylist -> any)) (: rest (nonempty-anylist -> anylist)) (: list2 anylist) (define list2 (cons "Hello" (cons "World" empty))) ; homogene Liste (: prim4 anylist) (define prim4 (cons 2 (cons 3 (cons 5 (cons 7 empty))))) (: alist anylist) (define alist (cons 42 (cons "Hello" (cons #t empty)))) ; inhomogene Liste!