Clojure:使用vector和ref

时间:2017-01-13 19:20:17

标签: vector clojure refs

请使用参考矢量的人帮助我吗?

每行中的这个向量都有一个(ref {:desc "text" :amount double})

[#<Ref@1cda773e: {:desc "DESC1", :amount 100}
 #<Ref@468dd81: {:desc "DESC2", :amount 200}
 #<Ref@1e95e716: {:desc "DESC3",:amount -50}>]

是否可以将以上所有金额都放在一个新的向量中:[100, 200, -50]

使用refs非常困难,我不知道如何访问它们。

1 个答案:

答案 0 :(得分:1)

这是一种方法:

user=> (def data [{:desc "DESC1", :amount 100} {:desc "DESC2", :amount 200} {:desc "DESC3",:amount -50}])
#'user/data
user=> (def my-refs (map #(ref %) data))
#'user/my-refs
user=> (vec (map #(-> % deref :amount) my-refs))
[100 200 -50]