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))))
@newseq))
Usage e.g.
(filter-repeats '(2 3 1 4 2 2 4 3 5 ) 2)
[3 4]
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---