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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en