It depends on what you want to do. If you really want to reduce the collection to an error count, then this will do it.
(let [count-if (comp count filter)] (count-if #(re-matches pattern %) (line-seq rdr))) On Tuesday, March 4, 2014 4:21:47 PM UTC-5, Dean Laskin wrote: > > I'm comparing two large files based on specific fields in the files. Is > there a functional way of accumulating the results without atoms? (And > since I'm a newbie, any other advice is appreciated!) > > (let [sun (atom []) fri (atom [])] > (with-open [rdr (clojure.java.io/reader "/dev/errors-sunday.csv")] > (doseq [line (line-seq rdr)] > (when (re-matches #"^[^,]+,[^,]+,FAIL,.*$" line) > (swap! sun conj (nth (string/split line #",") 1))))) > (with-open [rdr (clojure.java.io/reader "/dev/errors-friday.csv")] > (doseq [line (line-seq rdr)] > (when (re-matches #"^[^,]+,[^,]+,FAIL,.*$" line) > (swap! fri conj (nth (string/split line #",") 1))))) > (println (nth (data/diff (set @fri) (set @sun)) 1)) > ) > > Thanks, > Dean > -- 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.