Grrr.. google groups seems to be playing up so apologies if this is double posted.
Thanks both! My attempt (inspired by Stuart Sierra's reply at https://groups.google.com/forum/#!topic/clojure/Hlfn4PdKg-k) was something like this (from memory so forgive me): (defn val-or-date [result [k v]] (if (instance? java.sql.Date v) (assoc result k (local-time/to-local-date-time v)) (assoc result k v))) (reduce val-or-date {} r) I can see how val-or-date can be much more generic passing in a predicate and transformation function, sure. Col On Friday, 5 July 2013 22:15:43 UTC+1, Jay Fields wrote: > > I use update-vals from https://github.com/jaycfields/jry fairly often. As > long as you don't mind doing the pred check in the fn you pass to > update-vals, it should do the trick. > > Cheers, Jay > > > On Fri, Jul 5, 2013 at 5:14 PM, Jim - FooBar(); > <jimpi...@gmail.com<javascript:> > > wrote: > >> You'll never really 'replace' any values so why not reduce/reduce-kv ? >> Just build a new map out of the old one... >> >> Jim >> >> >> On 05/07/13 21:59, Colin Yates wrote: >> >>> Hi all, >>> >>> I think this is one of those questions which has quite a few answers, >>> but given a map, how do I replace the values by applying a function to >>> those values, but only if they meet a condition? >>> >>> I understand the building blocks of (map..), (filter..), (assoc-in..) >>> and (filter..) and I can see how something could work using those pieces >>> but is would be pretty verbose. I am sure there is probably a much more >>> simple way using a more abstract function. >>> >>> The actual use case is I have a list of maps as returned from the >>> clojure.java.jdbc framework and they contain timestamps. I want to replace >>> all the timestamps with (for example) to a Joda LocalDate using the >>> excellent clj-time library. >>> >>> Any pointers? >>> >>> Thanks! >>> >>> Col >>> -- >>> -- >>> 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<javascript:> >>> 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 <javascript:> >>> For more options, visit this group at >>> http://groups.google.com/**group/clojure?hl=en<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 <javascript:>. >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<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 clo...@googlegroups.com<javascript:> >> 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 <javascript:> >> For more options, visit this group at >> http://groups.google.com/**group/clojure?hl=en<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 <javascript:>. >> For more options, visit >> https://groups.google.com/**groups/opt_out<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.