我试图制作一堆代理商。个人可以做:
(def myAgent (agent 3))
但是如果我想制作很多代理,我如何在匿名函数中为代理分配名称和值?我有这个:
(def agents (vec (map agent (range 0 50)) ))
这使得50个代理商,但没有一个具有价值。当我尝试匿名函数时:
(def agents (vec (map (fn [x] (def x (agent 3)) (range 0 50)) ))
它不起作用。任何帮助将不胜感激。
答案 0 :(得分:2)
创建一个包含3个代理的地图,其名称为地图键0
,1
,2
,地图值为初始值为:initial-value
user=> (zipmap (range 3) (repeatedly #(agent :initial-value)))
{0 #object[clojure.lang.Agent 0x31edaa7d {:status :ready, :val :initial-value}],
1 #object[clojure.lang.Agent 0x26adfd2d {:status :ready, :val :initial-value}],
2 #object[clojure.lang.Agent 0x3336e6b6 {:status :ready, :val :initial-value}]}