Thank you for your input Stathis, I will have a look at them as well.
On Sunday, September 30, 2012 10:59:05 PM UTC+3, arekanderu wrote:
>
> 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