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.