On Oct 19, 4:54 am, Alex Osborne <a...@meshy.org> wrote:
> (reduce-by record-type
>             (fn [count data] (+ count (units data)))
>             0 (get-idata))

Wow - that is a really nice abstraction!

Kind of leads to SQLalike queries:

(defn select-count
  [grouper coll]
  (reduce-by grouper (fn [x _] (inc x)) 0 coll))

(defn select-sum
  [summer grouper coll]
  (reduce-by grouper (fn [x row] (+ x (summer row))) 0 coll))

(let [owners #{{:name "dorris" :sale 5}
           {:name "joe" :sale 2}
           {:name "dorris" :sale 2}
           {:name "joe" :sale 2}
           {:name "carol" :sale 2}
           {:name "louise" :sale 2}}]
  (select-sum :sale :name owners))
#_({"carol" 2, "dorris" 7, "joe" 2, "louise" 2})


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to