【发布时间】:2016-08-11 10:36:34
【问题描述】:
假设我有一张这样的地图 (m):
(def m {:a 1 :b 2 :c {:d 3 :e 4} :e { ... } ....})
我想从m 创建一个只包含:a、:b 和:d 的新地图,即结果应该是:
{:a 1 :b 2 :d 3}
我知道我可以使用select-keys轻松获取:a和:b:
(select-keys m [:a :b])
但是还有什么好方法可以同时获得:d?我正在寻找这样的东西:
(select-keys* m [:a :b [:c :d]])
Clojure 中是否存在这样的功能或推荐的方法是什么?
【问题讨论】:
-
对于复杂的嵌套数据结构访问,你会得到像幽灵github.com/nathanmarz/specter这样的东西很好的服务
-
@sw1nn 我也是这么想的,但是你能想出幽灵解决方案吗?
-
我实际上在写问题之前尝试了幽灵,但我不知道如何做到这一点。所以幽灵的答案也将不胜感激:)
标签: clojure