Eric Rochester has a debug macro, together with a walkthrough of how he built it, here http://writingcoding.blogspot.com/2008/09/stemming-part-19-debugging.html
Joshua On Tue, Mar 24, 2009 at 4:43 PM, Mark Volkmann <r.mark.volkm...@gmail.com>wrote: > > I want to write a function or macro that allows me to output the value > of an expression without repeating it. For example, I want something > like (dump (+ 1 2)) to output "(+ 1 2) = 3". > > This works. > > (defn dump1 [string] > (println string "=" (load-string string))) > (dump1 "(+ 1 2)") > > Note how I had to put the expression passed to dump1 in quotes to make a > string. > > I'm wondering if there is a way to avoid that using a macro. The hard > part is printing the expression. The following doesn't work. It > outputs "3 = 3". > > (defmacro dump2 [expr] > `(let [value# ~expr] > (pr ~expr) > (println " =" value#))) > (dump2 (+ 1 2)) > > -- > R. Mark Volkmann > Object Computing, Inc. > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---