Thanks, you answered my question. I’m educating myself in ways to debug Scheme, coming from an imperative background.
I suspect the solution would be to leave the trace statements in and use a conditional when delivering production code. > On Mar 21, 2020, at 2:27 PM, John Clements <[email protected]> wrote: > > It sounds like you’re looking for a way to have the trace inserted for you by > a debugging tool, so you don’t have to remember to take it out again later. > This wouldn’t be hard to do, but (as far as I know) no one’s taken the time > to do it. > > John > >> On Mar 21, 2020, at 8:43 AM, Nicholas Papadonis >> <[email protected]> wrote: >> >> I was successful with MIT Scheme placing (trace proc) inside the closure of >> this code. Placing (trace proc) outside the closure did not have any effect. >> >> This is the question I'm asking. Is it possible to trace without modifying >> the closure? >> >> I ask due to forward thinking about software engineering practices and >> modifying code (although it could be argued in C a preprocessor block could >> be placed to compile in or out conditional macros blocks). >> >> Thanks again >> >> On Sat, Mar 21, 2020 at 11:24 AM Ben Greenman <[email protected]> >> wrote: >> On 3/21/20, dgtlcmo <[email protected]> wrote: >>> Does anyone know how to trace functions inside a closure? I would like to >>> trace hanoi-move, however find that with MIT Scheme I need to place (trace) >>> >>> within the closure (hanoi n), otherwise the trace will not occur. >>> >>> Can a trace like this be performed in Racket? >>> >>> Thanks >>> >>> (define (hanoi n) >>> (define (pmd from to) >>> (display "Move ") >>> (display from) >>> (display " to ") >>> (display to) >>> (newline) >>> '()) >>> (define (hanoi-move n from to spare) >>> (cond ((= n 0) '()) >>> ((= n 1) (pmd from to)) >>> (else >>> (hanoi-move (- n 1) from spare to) >>> (hanoi-move 1 from to spare) >>> (hanoi-move (- n 1) spare to from)))) >>> (hanoi-move n "A" "B" "C")) >> >> Yes, Racket has trace tools: >> https://docs.racket-lang.org/reference/debugging.html >> >> Try adding (trace hanoi) before the call to (hanoi-move ....) at the bottom >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Racket Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/racket-users/CAKD0t1%2Bn_W7%3Dc7%3D_KAcFuJQrFo86JBx8uGJuBfXY%2BgZrDFKHWg%40mail.gmail.com. > > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/38078F54-CD65-4223-852D-1D142C001F18%40gmail.com.

