This works (clever hack!), but you would have to reduplicate the keys in (defn bar [..]...), (defn baz [...] ...) etc.
On Friday, December 27, 2013 3:05:24 PM UTC-5, Cedric Greevey wrote: > > On Fri, Dec 27, 2013 at 2:32 PM, Mark Engelberg > <mark.en...@gmail.com<javascript:> > > wrote: > >> On Fri, Dec 27, 2013 at 10:27 AM, Cedric Greevey >> <cgre...@gmail.com<javascript:> >> > wrote: >> >>> On Fri, Dec 27, 2013 at 1:08 PM, Mark Engelberg >>> <mark.en...@gmail.com<javascript:> >>> > wrote: >>>> >>>> Solution 2: >>>> >>>> (defn foo [shared-info x] ... body uses shared-info) >>>> (defn bar [shared-info x] ... body uses shared-info) >>>> >>>> Call these functions via: >>>> >>>> (foo info 2) >>>> (bar info 3) >>>> >>> >>> In what way is this any worse than >>> >>> info.foo(2); >>> info.bar(3); >>> >> >> In an OO implementation, the definitions of foo and bar could be >> dramatically more concise because from within the object, references to the >> other components of the object don't need to be prefixed with "info." This >> is a big deal. >> > > Erm, > > (defn foo [{:keys [thingy mumble fiddly]} x] > (...thingy ... mumble ... fiddly ... mumble ... mumble ... x ... thingy > ...)) > > After from one brief incantation in the parameter list you can just go > ahead and refer to the "fields" like in an OO method body. > > > There's also protocol + defrecord and record fields referenced in the > function bodies in the defrecord. > -- -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.