如何附加到Clojure原子中的嵌套列表? [英] How to append to a nested list in a Clojure atom?

查看:108
本文介绍了如何附加到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆