Hello, I am trying to port an ugly piece of code from Ruby to clojure. So far I have only ported it to clojure by keeping the same way it was written in Ruby and i am trying to re-write it the clojure way because...well....its very ugly. I have a complex hash map which it's structure is always the same and the keys always known and by using the values in those keys, i make some function calls with those values as parameters. You can find a simplified version of the map and the function which steps into the map below.
The map structure: (def my-map > > [{:a-key "foo" :items-a > > [{:another-key "bar" :items-b > > [{:items-c > > [{:name "bar-bar" :items-d > > [{:items-e > > [{:name "foo-foo"}] > > }] > > }] > > }] > > }] > > }]) > > And the function: (defn my-func [] > > (map (fn [a-hash] > > (map (fn [item-a] > > (map (fn [item-b] > > (map (fn [item-c] > > (when-not (empty? (:items-e item-c)) > > (map (fn [item] > > (doSomething (:a-key item-a) >> (:name item)) > > (:items-e items-c)) > > (doSomethingElse (:a-key item-a) >> (:another-key item-b) (:name item-c)))) > > (:items-c item-b))) > > (:items-b item-a))) > > (:items-a a-hash))) > > my-map))) > > I would really appreciate it if someone could propose an alternative way of writing the above function or at least to point me where can I look for some useful clojure functions that will help me do what I want but in a cleaner way. 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