我在Clojure中有一张这样的地图:
(def stuff #{
{:a "help" :b "goodbye"}
{:c "help2" :b "goodbye"}
{:a "steve" :b "goodbye"}
{:c "hello2" :b "sue"}
})
Run Code Online (Sandbox Code Playgroud)
:我想提供一个搜索,以便:
(search stuff "help")
Run Code Online (Sandbox Code Playgroud)
:会回来:
#{
{:a "help" :b "goodbye"}
{:c "help2" :b "goodbye"}
}
Run Code Online (Sandbox Code Playgroud)
:最简单的方法是什么?
user=> (defn search [s q] (select #(some (partial re-find (re-pattern q)) (vals %)) s))
#'user/search
user=> (search stuff "help")
#{{:a "help", :b "goodbye"} {:c "help2", :b "goodbye"}}
Run Code Online (Sandbox Code Playgroud)
这样就可以了.