Also a newbie wrestling with agents.. but perhaps you could do
something with lazy-cons or cycle? An endless cycle of your agents:

(def running true)
(while running
   (doseq [a (cycle agents)] (send-off a somefunction))




On Jan 14, 4:48 pm, Justin Johnson <ajustinjohn...@gmail.com> wrote:
> I found my problem.  I wasn't calling agents.  I was doing this.
>
> => (defn next-agent [] (nth agents (next-counter)))
>
> and should have been doing this.
>
> => (defn next-agent [] (nth (agents) (next-counter)))
>
> Still, I would like feedback.  Is there a cleaner way to do this?
>
> Thanks.
> Justin
>
> On Wed, Jan 14, 2009 at 9:33 AM, Justin Johnson 
> <ajustinjohn...@gmail.com>wrote:
>
>
>
> > Hello,
>
> > I'm trying to create a list of agents and a function called next-agent that
> > always gives me the next agent and restarts at the beginning when the list
> > is exhausted.  For my purposes the agent is serving as a thread that will do
> > some work.  I don't much care about its value at this time.
>
> > I'm new to Clojure and am pretty sure there is an elegant way to do what I
> > want, but my little OO head is spinning.  Any help you can provide is
> > appreciated.
>
> > Thanks,
> > Justin
>
> > => (def counter (ref 0))
> > #'user/counter
> > => (defn next-counter [] (dosync (alter counter inc)))
> > #'user/next-counter
> > => (def a1 (agent 0))
> > #'user/a1
> > => (def a2 (agent 0))
> > #'user/a2
> > => (def a3 (agent 0))
> > #'user/a3
> > => (defn agents [] (cycle [a1 a2 a3]))
> > #'user/agents
> > => (defn next-agent [] (nth agents (next-counter)))
> > #'user/next-agent
> > => (next-agent)
> > java.lang.UnsupportedOperationException: nth not supported on this type:
> > user$agents__1177 (repl-1:92)
--~--~---------~--~----~------------~-------~--~----~
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
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to