Thanks Gary, it didn't cross my mind that i can use the # reader with the threading macro :)
On Tue, Apr 2, 2013 at 4:15 PM, Gary Verhaegen <gary.verhae...@gmail.com>wrote: > And there's the threading macro : #(-> {:foo %}) > > On 1 April 2013 07:12, Ryan <arekand...@gmail.com> wrote: > > Thanks for your input guys > > > > Ryan > > > > > > On Sunday, March 31, 2013 11:11:08 AM UTC+3, Alex Baranosky wrote: > >> > >> There's also 'for' > >> > >> (defn my-function [foo-id a-keyword a-list] > >> (for [m a-list] > >> {:foo_id foo-id (keyword a-keyword) (:BAR_KEY m)})) > >> > >> > >> On Sun, Mar 31, 2013 at 12:57 AM, JvJ <kfjwh...@gmail.com> wrote: > >>> > >>> ...even cheezier, use do > >>> #(do {:foo %}) > >>> > >>> > >>> On Saturday, 30 March 2013 23:58:31 UTC-4, JvJ wrote: > >>>> > >>>> Here's a cheezy hack, use identity. > >>>> > >>>> #(identity {:foo %}) > >>>> > >>>> On Thursday, 28 March 2013 17:51:10 UTC-4, Ryan wrote: > >>>>> > >>>>> Thanks for your explanation Jonathan. I am still a bit confused > however > >>>>> what is the proper solution here. Should i use an anonymous function > instead > >>>>> to do what I want or can it be done with the #() syntax? > >>>>> > >>>>> Hyphens is my preferred way as well, but, those keys represent sql > >>>>> columns which they use underscore so I gotta go with underscores in > order > >>>>> code to match them :) > >>>>> > >>>>> Ryan > >>>>> > >>>>> On Thursday, March 28, 2013 11:24:38 PM UTC+2, Jonathan Fischer > Friberg > >>>>> wrote: > >>>>>> > >>>>>> It's because the #() syntax always calls the content as a function. > >>>>>> > >>>>>> So #(...) is the same as (fn [] (...)). In your case, > >>>>>> #({:foo_id foo-id (keyword a-keyword) (:BAR_KEY %)}) > >>>>>> is the same as: > >>>>>> (fn [%] ({:foo_id foo-id (keyword a-keyword) (:BAR_KEY %)})) > >>>>>> Note the extra () around {}. In other words, your map is called > >>>>>> as a function. > >>>>>> > >>>>>> Maps can normally be called as functions, like this: > >>>>>> ({:hello :world} :hello) > >>>>>> => :world > >>>>>> That's why you get the "Wrong number of args" error > >>>>>> (and not a "a map is not a function" error). > >>>>>> Hope that makes sense. > >>>>>> > >>>>>> Btw, hyphen is normally used instead of underscore > >>>>>> in both variables and keywords. Just a slight style > >>>>>> "issue", but maybe you had your reasons. :) > >>>>>> > >>>>>> Jonathan > >>>>>> > >>>>>> > >>>>>> On Thu, Mar 28, 2013 at 10:16 PM, Ryan <areka...@gmail.com> wrote: > >>>>>>> > >>>>>>> Hello! > >>>>>>> > >>>>>>> I am having a small issue with a hash-map initialization and I am > >>>>>>> failing to understand why. I have the following situation: > >>>>>>> > >>>>>>>> (def a-list '({:BAR_KEY bar-value}, {:BAR_KEY another-value})) > >>>>>>> > >>>>>>> > >>>>>>>> (defn my-function [foo-id a-keyword a-list] > >>>>>>>> > >>>>>>>> (map #({:foo_id foo-id (keyword a-keyword) (:BAR_KEY %)}) > a-list)) > >>>>>>> > >>>>>>> > >>>>>>> So, by running the above function like this: > >>>>>>> > >>>>>>>> (my-function 5 "my_keyword" a-list) > >>>>>>> > >>>>>>> > >>>>>>> I get the following error: > >>>>>>> > >>>>>>>> clojure.lang.ArityException: Wrong number of args (0) passed to: > >>>>>>>> PersistentArrayMap > >>>>>>> > >>>>>>> > >>>>>>> I am trying to get the following result: > >>>>>>> > >>>>>>> ({:foo_id 5 :my_keyword bar-value}, {:foo_id 5 :my_keyword > >>>>>>> another-value}) > >>>>>>> > >>>>>>> Any ideas? I have played around in repl for the last 2 hrs but I > >>>>>>> haven't found the proper way to do this. > >>>>>>> > >>>>>>> Thank you for your time :) > >>>>>>> > >>>>>>> -- > >>>>>>> -- > >>>>>>> You received this message because you are subscribed to the Google > >>>>>>> Groups "Clojure" group. > >>>>>>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. > >>>>>>> For more options, visit https://groups.google.com/groups/opt_out. > >>>>>>> > >>>>>>> > >>>>>> > >>>>>> > >>> -- > >>> -- > >>> You received this message because you are subscribed to the Google > >>> Groups "Clojure" group. > >>> To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com. > >>> For more options, visit https://groups.google.com/groups/opt_out. > >>> > >>> > >> > >> > > -- > > -- > > 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. > > > > > > -- > -- > 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 a topic in the > Google Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/SreXPqbyjJ0/unsubscribe?hl=en. > To unsubscribe from this group and all its topics, send an email to > clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- 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.