A lang-extension for debugging, based on sugar/debug from mbutterick/sugar
documentation: http://pkg-build.racket-lang.org/doc/debug/index.html
To debug the value of an expression, simply put debug in front of the language at the top of
the file (for instance #lang debug racket), and put #R, #RR or #RRR in front of the
expression.
#Rreports the value and returns it#RRreports the value with a line number and returns it#RRRreports the value with the file and line number, and returns it
#lang debug racket #R(+ 1 2)
Shows the output:
(+ 1 2) = 3
3
#lang debug racket (+ 1 2 #R(* 3 4))
Shows the output:
(* 3 4) = 12
15
Allows #R, #RR and #RRR like #lang debug, but they don't add any debug output, they just return the expression inside.
> (require debug/repl) > (define (f x y) (debug-repl)) > (f 1 2) -> ; in the debug-repl now x 1 -> y 2 -> (+ x y) 3 -> ; exit the debug-repl by pressing ctrl-D > ; back in the normal repl (f (λ (g a) (g a)) (list add1 4)) -> ; a new debug-repl x #<procedure> -> y (list #<procedure:add1> 4) -> (x string->number "3") 3 -> (x (first y) (second y)) 5 -> ; exit this debug-repl by pressing ctrl-D > ; back in the normal repl
> (require debug/repl) > (define (f x y) (debug-repl)) > (f 1 2) -> ; in the debug-repl now x 1 -> y 2 -> (+ x y) 3 -> (resume (+ x y)) ; exits the debug-repl by calling resume 3 > ; back in the normal repl