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>