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
-~----------~----~----~----~------~----~------~--~---

Reply via email to