Zum Inhalt
SchemeTraceDefine
Aus ProgrammingWiki
Archivierte Version vom 2018-09-21T06:55:31+00:00.
Aktuelle Version
(define indent 0) (define-macro (trace-define name expr) `(define ,name (lambda input (set! indent (+ indent 1)) (print (make-string indent #\space) (quote ,name) " " input) (let ([f ,expr]) (let ([r (apply f input)]) (print (make-string indent #\space) r) (set! indent (- indent 1)) r ) ) ) ) )
(trace-define fak-rek (lambda (n) (if (= n 0) 1 (* n (fak-rek (- n 1)))))) (trace-define fak-help (lambda (n fak) (if (= n 0) fak (fak-help (- n 1) (* n fak))))) (trace-define fak-it (lambda (n) (fak-help n 1)))
(fak-rek 5) (print "------") (fak-it 5)
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten