On Tue, Apr 26, 2011 at 7:18 PM, clj123123 <[email protected]> wrote: > Thank you James, this worked for me. > > On Apr 26, 4:11 pm, James Reeves <[email protected]> wrote: >> On 27 April 2011 00:05, clj123123 <[email protected]> wrote: >> >> > I have a function: >> >> > (defn abc [] (println "blah")) >> >> > (defn blah2 [f] (println f)) >> >> > (blah2 abc) >> >> > I need to print out the name of the function passed to blah2. >> >> Then you want something like: >> >> (defn blah2 [f] (println (:name (meta f))))
It has some limitations, though. Specifically, it won't work with local functions, even named ones: user=> (:name (meta (fn foo [] 42))) nil user=> (letfn [(foo [] 42)] (:name (meta foo))) nil Only defn seems to attach name metadata to a function. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. 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
