Thanks Meikel for the prompt reply, that does it.

Please can you elaborate on how I can use the solution below to update a 
particular entry in the vector.

[{:id 1 :email {"a...@mail.com 1}}
  {:id 2 :email {"d...@mail.com 1}}
  {:id 3 :email {"g...@mail.com 2}}]

So I will like to write a function that accepts an id and then updates the 
counter in email section of the given id.

(defn update-counter [x xs]  
   (dosync 
      (alter result ......

Thanks again for your time.

On Monday, June 3, 2013 9:23:47 PM UTC+1, Meikel Brandmeyer (kotarak) wrote:
>
> Hi,
>
> Am Montag, 3. Juni 2013 22:16:54 UTC+2 schrieb Yinka Erinle:
>>
>> Given I have the following 
>> (def result (ref [ { :id 1 :emails { "yi...@mail.com" 1}} ] ) )
>>
>> I like to alter the result in a transaction to become
>> [{:id 1 :emails { "yi...@mail.com" 2}}]    ; increment the counter from 
>> 1 to 2
>>
>> Please can someone provide pointers.
>>
>>
> You can use the uniform update principle to stitch together alter and 
> update-in.
>
> (dosync
>   (alter result update-in [0 :emails "a@b.c"] inc))
>
> Kind regards
> Meikel
>  
>

-- 
-- 
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.


Reply via email to