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.

Reply via email to