Hello all, I am trying to figure out which is the most idiomatic way to go in a project I am doing. I've noticed the following pattern in my code and I started wondering if there is a more clojurish approach to go with it. For the shake of readability and simplicity, I will provide a pseudo-code that represents the actual flow of the code piece I wanna show.
So, to get thing started, this is the pseudo-code: (defn process-bar-item [bar-item] > (let [sub-items (. bar-item getSubItems)] > (doseq [a-sub-item sub-items] > ;make an update to database > ))) > (defn my-function [a-list another-list] > (doseq [item a-list > :let[foo (. item getFoo) > foo-id (. foo getID)]] > ;make an update to database > ;make a second update to database > ;make a third update to database > ) > (doseq [item another-list > :let[foo (. item getFoo) > foo-id (. foo getID) > bar-list (. foo getBars)]] > ;make an update to database > (doseq [bar-item bar-list] > (process-bar-item bar-item)))) Just a quick note here, process-bar-item is more complex than that, I just made it simpler so I can make this example. So, what I was wondering is this. Would it be better to: 1. Create a list/hash-map with the use of reduce which will include all the values that I need to construct each query. 2. Pass that list to a separate function, loop that list and make the side-effects (the database queries in my case) Does the above approach sounds better than what I am doing? Is there a preferred way to do things like this? or what I am already doing is just fine (even though I believe it will be more difficult to test it) ? Thank you for your time -- -- 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.