如何附加到Clojure原子中的嵌套列表? [英] How to append to a nested list in a Clojure atom?
本文介绍了如何附加到Clojure原子中的嵌套列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想向Clojure原子中的列表添加一个值:
I want to append a value to a list in a Clojure atom:
(def thing (atom {:queue '()}))
我知道当它不是一个原子时,我可以这样做:
I know when it's not an atom, I can do this:
(concat '(1 2) '(3))
如何将它转换为交换?命令?
How can I translate that into a swap! command?
注意:我问了一个类似的问题,涉及到地图:在Clojure原子中使用交换到MERGE(添加到)嵌套地图?
Note: I asked a similar question involving maps: Using swap to MERGE (append to) a nested map in a Clojure atom?
推荐答案
user=> (def thing (atom {:queue '()}))
#'user/thing
user=> (swap! thing update-in [:queue] concat (list 1))
{:queue (1)}
user=> (swap! thing update-in [:queue] concat (list 2))
{:queue (1 2)}
user=> (swap! thing update-in [:queue] concat (list 3))
{:queue (1 2 3)}
这篇关于如何附加到Clojure原子中的嵌套列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文