(defn float2 [f a b] (f (float a ) (float b))) (float2 + 1 2) => 3.0
(defmacro mfloat2 [f a b] (f (float a) (float b))) (mfloat2 + 1 2 ) => 2.0 ??? macro expend to last expression in list,right? (defmacro m2float2 [f a b] `(~f (float ~a) (float ~b))) (mfloat2 + 1 2) => 3.0 (defmacro m3float2 [f a b] (list f (float a ) (float b))) (m3float2 + 1 2) => 3.0 functions of macro only not evaluating args ? what's the difference between macro and call by name in other language? gerry --~--~---------~--~----~------------~-------~--~----~ 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 Note that posts from new members are moderated - please be patient with your first post. 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 -~----------~----~----~----~------~----~------~--~---