Clojure - 引用列表向列表添加 "quote" 文本 - 如何删除它?

Clojure - Quoting a List Adds "quote" text to list - How Do I Remove This?

我有这样的场景,我有一个地图,该地图有一个字段,该字段将成为一系列嵌套列表以创建树状结构。我用 ' 引用了列表,这样它就可以工作,否则我会在尝试执行它时遇到错误。

(def test-map
  {:tree '("1" "2" "3" '("1" "2"))})

问题是这似乎是在实际列表中添加了“quote”一词。

(:tree test-map)
;("1" "2" "3" (quote ("1" "2")))

(first (last (:tree test-map)))
;quote

我的问题是如何去掉这个“引用”文本。我的目标是能够按一定数量处理这些类型的列表,并能够按给定深度按顺序输出字符串。

(for [text (second (last (:tree test-map)))]
  text)

这是一个基本的想法,但是在视觉上看到它时不得不在这里使用第二个感觉很奇怪我正在处理的列表是第一个项目。

有没有办法用列表做我想做的事?使用向量更好吗?

只是不要引用内部列表。引用适用于整个嵌套结构,所以如果你想构建一个特定的数据结构,你可以在前面加上一个引用,然后正常写出数据结构。