我正在动态注册一个符号,我可以验证它是否成功:
(defn- register[x]
(intern 'foo.core x (atom {}))
(println "Var " x " gets " (var-get (get (ns-interns 'foo.core) x))))
; Var Persons gets #object[clojure.lang.Atom 0x688a2c09 {:status :ready, :val {}}]
我的核心问题是:如何在(swap!...
第二个问题是:如何取消引用x来获取地图本身?
最后一个问题是:有更清洁的方法吗?
答案 0 :(得分:4)
groupFinder(df['item'].values)
函数返回一个intern
对象,由于它是一个参考值,因此可以取消引用(使用variable
或@
)。它也可以从功能返回并进行操作,以获得所需的结果。此var指向的值(或var的绑定)指向一个原子,这是另一个参考值,也可以取消引用。
这是一个如何处理这种情况的小例子:
deref