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/CAFUu9R5RDgp%2BcdQ219FF14X9mp99qd%2BMB8T2tMRvfvKf8KKa2Q%40mail.gmail.com.

