使用Spectre从动态索引中选择矢量元素

时间:2018-08-27 04:34:32

标签: clojure specter

我有一个向量[:a :b :c :d :e]和一些索引[1 2 4]

使用Spectre,如何从索引中选择向量的元素,以便其返回[:b :c :e]

1 个答案:

答案 0 :(得分:4)

无需使用Spectre:

(let [a [:a :b :c :d :e]
      B [1 2 4]]
    (mapv (partial nth a) B))

或更简单:

(let [a [:a :b :c :d :e]
      B [1 2 4]]
    (mapv a B))

但是,如果您坚持使用Spectre,那么这里是:

(let [a [:a :b :c :d :e]
      B [1 2 4]]
    (select (apply multi-path B) a))