Thanks Sean, your example looks much cleaner and most important works! The reason I looked into 'intern' can only be explained by totally lack of experience in Clojure and more general functional programming. My goal was to dynamically create a var inside the 'doseq' and apparently 'intern' is used in this cases. The 'def' special form didn't work for me... (not sure why). But as I said it was rather my lame attempt to make things work then any well thought out decision :)
Thanks, Kuba On Tuesday, August 20, 2013 4:56:30 PM UTC-7, Sean Corfield wrote: > > Very likely Juan, as seen here: > > (let [agents (map agent (range 30 35))] > (doseq [a agents] > (send a + 100) > (println @a)) > (doseq [a agents] > (println @a))) > > For me that prints: > > 30 > 31 > 32 > 33 > 34 > 130 > 131 > 132 > 133 > 134 > > but I suspect that's more luck that anything since there's no reason > the agent operations need to have finished before the second println. > > Kuba, as a separate issue, why are you trying to intern all those > symbols? It's not very idiomatic. > > Sean > > > On Tue, Aug 20, 2013 at 4:49 PM, juan.facorro > <juan.f...@gmail.com<javascript:>> > wrote: > > If on the println you don't see the value updated, it's probably because > the > > operation sent to the agent wasn't applied yet. > > > > Add a (Thread/sleep 500) in between the send and println expressions and > > you'll see the expected agents'. > > > > Cheers, > > > > JF > > > > > > On Wednesday, August 21, 2013 12:21:59 AM UTC+1, Kuba Roth wrote: > >> > >> Hi there, > >> I've got a range of values and I'd like to run agents for each value > per > >> thread. For some reason I've got only one agents being updated. > >> Not sure what's wrong here but I suspect must be doing something > terrible > >> stupid... > >> > >> Thanks! > >> > >> (doseq [s (range 30 35)] > >> ;(println (format "_%s" s)) > >> (intern *ns* (symbol (format "_%s" s) ) (agent s)) ;; > set > >> initial value > >> (send @(intern *ns* (symbol (format "_%s" s))) + 100) ;; > send > >> agent and update value > >> (println @(intern *ns* (symbol (format "_%s" s)) )) ;; > deref > >> ) > > > > -- > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clo...@googlegroups.com<javascript:> > > Note that posts from new members are moderated - please be patient with > your > > first post. > > To unsubscribe from this group, send email to > > clojure+u...@googlegroups.com <javascript:> > > 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+u...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > -- > Sean A Corfield -- (904) 302-SEAN > An Architect's View -- http://corfield.org/ > World Singles, LLC. -- http://worldsingles.com/ > > "Perfection is the enemy of the good." > -- Gustave Flaubert, French realist novelist (1821-1880) > -- -- 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.