在clojure中,我如何选择并返回集合的子集

Joh*_*ine 0 collections clojure

如果我有这样的集合

{{:A "a" :B "b"} {:A "a" :B "Goal" } {:A "a" :B "Goal"}}
Run Code Online (Sandbox Code Playgroud)

如何创建一个函数,只返回部分在哪里:B "Goal"?仅含义:

{{:A "a" :B "Goal" } {:A "a" :B "Goal"}}
Run Code Online (Sandbox Code Playgroud)

Ala*_*son 6

我修复了你的数据,使其成为3幅地图的矢量.

(def data [{:A "a" :B "b"}
           {:A "a" :B "Goal"}
           {:A "a" :B "Goal"}])

(defn b-goal?
  [item]
  (= (:B item) "Goal") )

(filter b-goal? data) => ({:A "a", :B "Goal"} {:A "a", :B "Goal"})
Run Code Online (Sandbox Code Playgroud)

一定要看看:

和书一样

  • 生活Clojure
  • 得到Clojure