That works for functions with one argument list, but what about functions with multiple argument lists?
;; doesn't work (def-with-redis foo ([] …) ([arg] …)) Doc strings and metadata won't work either. It seems like I might as well copy-paste the code from (source defn). Is there another way without losing the flexibility of the original defn? On Oct 22, 5:24 pm, Richard Newman <holyg...@gmail.com> wrote: > > It feels wrong to repeat myself every time I need to use the database. > > Is there a way to abstract out the (redis/with-server) part? > > Something like > > (defmacro def-with-redis [name args & body] > `(defn ~name ~args > (redis/with-server *db* > ~...@body))) > > then > > (def-with-redis one [] > ...) > > ... untested. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---