On 3/21/20, dgtlcmo <nick.papadonis...@gmail.com> 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 racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CAFUu9R5RDgp%2BcdQ219FF14X9mp99qd%2BMB8T2tMRvfvKf8KKa2Q%40mail.gmail.com.