List Clojure:按第二个列表筛选地图列表

List Clojure:按第二个列表筛选地图列表,list,dictionary,filter,clojure,List,Dictionary,Filter,Clojure,有一张像这样的地图列表吗 ({:a "a" :b "b" :c "c"} {:a "d" :b "e" :c "f"} {:a "g" :b "h" :c "i"} {:a "j" :b "k" :c "l"}) 和第二个列表,如(“c”“i”) 我需要通过第二个列表条目过滤地图列表,结果如下 ({:a“a”:b“b”:c“c”}{:a“g”:b“h”:c“i”}) 但是不要知道怎么做。 (def data (list {:a "a" :b "b" :c "c"}

有一张像这样的地图列表吗

({:a "a" :b "b" :c "c"}
 {:a "d" :b "e" :c "f"}
 {:a "g" :b "h" :c "i"}
 {:a "j" :b "k" :c "l"})
和第二个列表,如
(“c”“i”)

我需要通过第二个列表条目过滤地图列表,结果如下

({:a“a”:b“b”:c“c”}{:a“g”:b“h”:c“i”})

但是不要知道怎么做。

(def data
   (list
     {:a "a" :b "b" :c "c"}
     {:a "d" :b "e" :c "f"}
     {:a "g" :b "h" :c "i"}
     {:a "j" :b "k" :c "l"}))
然后

  • 您的列表需要
    list
    作为操作员(或被引用)
  • 我假设您希望按key
    :c
    的值进行过滤,这不需要是打印地图中的第二个条目
您需要掌握Clojure的两个或三个方面:

  • 序列功能如
    filter
    是如何工作的
  • 使用集合和关键字作为函数
  • comp
    的功能
    • 给定

      然后

      • 您的列表需要
        list
        作为操作员(或被引用)
      • 我假设您希望按key
        :c
        的值进行过滤,这不需要是打印地图中的第二个条目
      您需要掌握Clojure的两个或三个方面:

      • 序列功能如
        filter
        是如何工作的
      • 使用集合和关键字作为函数
      • comp
        的功能
      => (filter (comp (set (list "c" "i")) :c) data)
      ({:a "a", :b "b", :c "c"} {:a "g", :b "h", :c "i"})