Brilliant, thank you very much! Nik
On Nov 16, 5:41 pm, Rich Hickey <[EMAIL PROTECTED]> wrote: > On Nov 16, 12:18 pm, "Craig Andera" <[EMAIL PROTECTED]> wrote: > > > > > One way I could think of to do this would be to build a map with each > > unique item as a key and the count as its value. Then it would be > > trivial to pull out the keys with the count as a specified value. I > > started writing this, but my SLIME is royally screwed up right now > > after the upgrade to Clojure HEAD. Sorry. Anyway, it shouldn't require > > any refs - probably just a loop/recur. > > > Or maybe someone has a far more clever idea. :) > > > > On Sun, Nov 16, 2008 at 12:02 PM, npt11tpn <[EMAIL PROTECTED]> wrote: > > > > Hi guys, > > > This is my first post to the group, but have been following the > > > discussions for almost a year. Many thanks to Rich Hickey for creating > > > a fantastic future-proof language which is a pleasure to use and to > > > the great community! > > > The following function (as part of a chemistry-related application) > > > filters the elements of a sequence that a repeated a specified number > > > of times. Wondering if the function could be simplified and written > > > without the reference (newseq). > > > Thanks a lot! > > > Nik > > > > (defn filter-repeats [seq n] > > > "Returns a vector of the elements of a sequence that are repeated n > > > times" > > > (let [newseq (ref [])] > > > (doseq [u (set seq)] > > > (when (= (count (filter #(= % u) seq)) n) > > > (dosync (commute newseq conj u)))) > > > [EMAIL PROTECTED])) > > > > Usage e.g. > > > (filter-repeats '(2 3 1 4 2 2 4 3 5 ) 2) > > > [3 4] > > (defn filter-repeats [n coll] > (let [counts (reduce (fn [m k] (assoc m k (inc (m k 0)))) > {} coll)] > (for [[k v] counts :when (= v n)] k))) > > Rich --~--~---------~--~----~------------~-------~--~----~ 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 To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---