Scheme High Order Functions

跟踪器

trace 接受一个过程作为参数,生成一个过程。这个过程跟原来的过 程接受同样的参数,只不过它会把自己的名字和输入的参数打印出来 之后在进行计算。

(define (trace fun)
  (lambda args
    (display "(")
    (display fun)
    (display " ")
    (for-each display args)
    (display ")")
    (newline)
    (apply fun args)))