;; 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 fib) (read-case-sensitive #f) (teachpacks ()) (deinprogramm-settings #(#f write repeating-decimal #f #t none explicit #f ()))) ; Berechne die n-te Fibonacci-Zahl (: fib (natural -> natural)) (check-expect (fib 0) 0) (check-expect (fib 1) 1) (check-expect (fib 2) 1) (check-expect (fib 5) 5) (check-expect (fib 10) 55) ; baumrekursiver Prozess: #;(define fib (lambda (n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2))))))) ; iterativer Prozess: (define fib (lambda (n) (fib-iter 1 0 n))) (: fib-iter (natural natural natural -> natural)) (define fib-iter (lambda (prev preprev cnt) (if (= cnt 0) preprev (fib-iter (+ prev preprev) prev (- cnt 1)))))