2016-03-24 70 views
1

剛剛開始Clojure本週,我的頭撞牆上的東西。雖然我明白在Clojure中沒有任何變化,但我通常不會理解如何使用先前分配的數據更新原子密鑰的值。在ClojureScript中更新Atom的關鍵字

2簡化的例子我與掙扎......

(def test-db (atom 
{:name "jessie" :points 4})) 

(swap! test-db update :points (:points + 5)) 


(def another-test-db (atom 
{:name "roger" :nums [1 2 3]})) 

(swap! another-test-db update :nums (apply str :nums)) 

任何幫助將不勝感激!

回答

4

您已經掌握了這個值,所以您可以使用部分函數。

(swap! test-db update :points (partial + 5)) 
(swap! another-test-db update :nums (partial apply str)) 

或者更簡單地說:

(swap! test-db update :points + 5) 
(swap! another-test-db update :nums str) 
+0

不客氣。 SO上最好的「謝謝你」接受了答案。 ;) – jmargolisvt

+0

哈哈對不起,我不知道我可以這樣做 - 這只是爲了外人!我接到你了。 –

+3

'(swap!test-db update:points + 5)'只需 –