On Wed, 24 Nov 2010 00:37:07 -0800 (PST) LauJensen <lau.jen...@bestinclass.dk> wrote:
You just touched on an idiom I see fairly often here that bugs me. I'm not intentionally singling you - or CQL! - out for this, but you made a comment that sets up my question perfectly. > (let [photo-counts (-> (table :photos) > (aggregate [[:count/* :as :cnt]] [:id])))] > (-> (table :users) > (join photo-counts (= {:users.id :photos.id})) > > I think thats really as simple as you can express that join operation. Um, I can see two macros that, if expanded in place, would result in a simpler expression (assuming that CQL doesn't redefine ->): (let [photo-counts (aggregate (table :photos) [[:count/* :as :cnt]] [:id])] (join (table :users) photo-counts (= {:users.id :photos.id}))) I also fixed the parens - I think. I removed one after [:id], and it seems like two were missing at the end as well. Ok, I understand why you would use -> if you're threading through multiple forms. I don't know that I like it, but I can at least understand it. But when it's only one form? In the best case - when the form is a symbol, as in (-> 1 inc) - it just wastes three characters to reverse the form and argument. More often - for example (-> 1 (+ 2)) - it also adds another level of parenthesis, which I thought most people considered a hindrance to comprehension. Could someone explain where this urge to write (-> expr (func arg)) instead of (func expr arg) comes from? <mike -- Mike Meyer <m...@mired.org> http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information. O< ascii ribbon campaign - stop html mail - www.asciiribbon.org -- 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