Skip to content

Commit 96f6650

Browse files
committed
Merge branch 'filter-vals-speedup' of github.com:RedBrainLabs/useful into develop
Conflicts: src/flatland/useful/map.clj
2 parents 21b6c7b + 4c50a48 commit 96f6650

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/flatland/useful/map.clj

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,11 +206,14 @@
206206
[pred m]
207207
(filter-keys-by-val (complement pred) m))
208208

209-
(defn filter-vals
210-
"Returns a map that only contains values where (pred value) returns true."
211-
[m pred]
209+
(defn filter-vals [m pred]
212210
(when m
213-
(select-keys m (filter-keys-by-val pred m))))
211+
(persistent! (reduce (fn [m [k v]]
212+
(if (pred v)
213+
m
214+
(dissoc! m k)))
215+
(transient m)
216+
m))))
214217

215218
(defn remove-vals
216219
"Returns a map that only contains values where (pred value) returns false."

0 commit comments

Comments
 (0)