18 lines
508 B
Scheme
18 lines
508 B
Scheme
#lang scheme/base
|
|
|
|
(provide debug)
|
|
|
|
;; printf debugging convenience
|
|
(define-syntax debug
|
|
(syntax-rules ()
|
|
[(_ (f . args))
|
|
(begin (printf "starting ~a~n" 'f)
|
|
(let ([l (list . args)])
|
|
(printf "arguments are:~n")
|
|
(for/list ([arg 'args]
|
|
[val l])
|
|
(printf "\t~a: ~a~n" arg val))
|
|
(let ([e (apply f l)])
|
|
(printf "result was ~a~n" e)
|
|
e)))]
|
|
[(_ f . args) (debug (f . args))])) |