SchemeTraceDefine
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SchemeJS</language>
<code id="5ba48fcdb46e0">
(define indent 0)
(define-macro (trace-lambda expr)
(lambda (n fak)
(set! indent (+ indent 1))
(print (make-string indent #\space) (quote ,expr))
(let ([r ,expr])
(print (make-string indent #\space) r)
(set! indent (- indent 1))
r
)
)
)
(define x
(trace-lambda (n)
(+ n n)))
</code>
<run id="5ba48fcdb474f">
(x 4)
</run>