我正試圖從地圖中找到匹配的鍵和值對。我使用下面的代碼:在Clojure地圖中是否有一種習慣的方式來查找匹配的鍵和值?
(defn matches? [m k v]
(let [val (k m)]
(= val v)))
my-demo.core=> (matches? {:a 1 :b 2} :b 2)
true
my-demo.core=> (matches? {:a 1 :b 2} :b 3)
false
另一種方法使用superset?
:
my-demo.core=> (superset? #{:a 1 :b 3} #{:a 1})
true
my-demo.core=> (superset? #{:a 1 :b 3} #{:a 2})
false
我有一種感覺,有一種更好的方式來做到這一點。
我的問題是:在Clojure的地圖中是否有一種慣用的方式來查找匹配的鍵和值?
你''匹配功能對我來說很好,但我可能會刪除讓這種情況下:'(DEFN匹配?[mkv](=(km)v))'。 – 2015-02-07 08:28:03
請將其擴展爲答案 – hawkeye 2015-02-07 08:31:50