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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---