Swap requires an atom as an input. 

https://clojuredocs.org/clojure.core/swap!

If you are trying to perform swap! on a collection that was just read from 
json/read-str then it is probably not an atom, and you would need to 
convert it to an atom before doing this. 

However, generally there are specific use cases where you would want to use 
an atom (concurrency), but most of the time you would just want to use a 
regular data structure unless concurrency is an issue with what you are 
doing with the data. 

Read this as well.

https://clojure.org/reference/atoms

On Tuesday, April 3, 2018 at 6:24:27 PM UTC-5, Renata Soares wrote:
>
> Good Night,
>
> I have this function:
>
> (defn treat-requests [key-request collection]
> (let [selecteds (filter #((keyword key-request) %) input)]
> (doseq [item selecteds]
>     (swap! collection conj item))))
>
> where input is an output of clojure.data.json/read-str and swap is giving 
> this following error:
>
> clojure.lang.PersistentVector cannot be cast to clojure.lang.IAtom
>
> How can I solve it?
>
> Thanks in advance.
>

-- 
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/d/optout.

Reply via email to