[plt-scheme] Question about eval and environments
I don't know if this helps: if you're prepared to permanently add
(set! x ...) to your code you could do this:
> (define debug-enabled?
(make-parameter #t))
> (define (debug-hook x)
(if (debug-enabled?)
(begin (display "DEBUG> ")
(let ([fn (eval (read))])
(fn x)))
x))
> (define (run-test)
(define x 10)
(set! x (debug-hook x))
(display x)
(newline))
> (run-test)
DEBUG> (lambda (x) (* x 10))
100
You could get rid of the set! with a macro, although it would still
be there in reality of course.
Cheers,
-- Dave