;; 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-vanilla-reader.ss" "deinprogramm")((modname dynamic_typing) (read-case-sensitive #f) (teachpacks ((lib "image.ss" "teachpack" "deinprogramm") (lib "turtle.ss" "teachpack" "deinprogramm"))) (deinprogramm-settings #(#f write repeating-decimal #f #t none explicit #f ((lib "image.ss" "teachpack" "deinprogramm") (lib "turtle.ss" "teachpack" "deinprogramm"))))) (: wants_nat (natural -> natural)) (define wants_nat (lambda (x) (if (string=? x "banana") "apple" x))) ; An dieser Prozedur können wir sehen, dass Scheme dynamisch getypt ist: ; Das Starten des Programms verursacht keinen Fehler, aber der Aufruf ; (wants_nat 8) verursacht einen Typfehler, obwohl wants_nat die Signatur ; natural -> natural hat. (define banana_plus_one (lambda (x) (if (string=? x "banana") (+ x 1) x))) ; An dieser Prozedur können wir ebenfalls sehen, dass Scheme dynamisch ; getypt ist: erst beim Aufruf von (banana_plus_one "banana") kommt es ; zu einem Fehler.