;; 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 ()))) ; Listen mit beliebigen Elementen ; Eine nicht-leere Liste besteht aus ; - einem beliebigen Element (1. Element, Kopf der Liste) ; - einer Liste (define-record-procedures nonempty-list cons cons? (first rest)) ; Eine Liste ist eins der Folgenden: ; - eine leere Liste ; - eine nicht-leere Liste (define anylist (signature (mixed empty-list nonempty-list))) (: cons (any anylist -> nonempty-list)) (: cons? (any -> boolean)) (: first (nonempty-list -> any)) (: rest (nonempty-list -> anylist)) (define list12 (cons 1 (cons 2 empty))) (define hw (cons "Hello" (cons "World" empty))) (define mixlist (cons "Hello" (cons 42 empty)))