Your welcome!

I just realized that, in this case, filter and map are good enough, but the
general answer for threading state through the processing of a sequence is
to use `reduce`.  Coming from another language, it takes a while to realize
how often the answer is to use reduce.

-Jason


On Tue, Mar 4, 2014 at 4:07 PM, Dean Laskin <wdlas...@gmail.com> wrote:

> Awesome, thanks Jason! It looks much cleaner.
>
> Dean
>
>
> On Tuesday, March 4, 2014 4:47:12 PM UTC-5, Jason Felice wrote:
>
>> Something like
>>
>> (with-open [rdr (clojure.java.io/reader "/dev/errors-sunday.csv")]
>>   (->> (line-seq rdr)
>>          (filter #(re-matches #"..."))
>>          (map #(nth (string/split % #",") 1))))
>>
>> Will do what you want.  It's laziness to the rescue.
>>
>>
>> On Tue, Mar 4, 2014 at 3:21 PM, Dean Laskin <wdla...@gmail.com> 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 clo...@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+u...@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+u...@googlegroups.com.
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
> 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.
>

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

Reply via email to