【发布时间】:2019-08-20 10:32:51
【问题描述】:
我是 clojure 编程的新手,需要一些代码方面的帮助。我有这个向量的向量,如下所示,
(def start-pos [[[:fox :goose :corn :you] [:boat] []]])
我想遍历向量并从内部向量之一中删除一个元素,例如从 start-pos 中删除 ':goose'。
我尝试了下面的代码,但由于某种原因它没有按预期工作,
(map #(disj (set %) :goose) start-pos)
结果却是,
(#{[:boat] [] [:fox :goose :corn :you]})
从结果中可以看出,内部向量现在是一个集合,是的,原始顺序被扭曲了,有没有办法删除元素而不打乱向量的原始顺序,也许不需要将其转换为先来一套?我首先选择将此转换为集合,因为根据文档disj 仅适用于集合。
补充:这篇文章与this suggested post 不相似,因为我的向量嵌套了三个向量。
【问题讨论】:
标签: clojure clojurescript