review comments

This commit is contained in:
Tommi Reiman 2023-05-22 20:23:47 +03:00
parent 9ac713f0e5
commit 3e6c3f589f

View file

@ -17,10 +17,8 @@
(letfn [(match [x f] (if (fn? f) (f x) (= x f)))] (letfn [(match [x f] (if (fn? f) (f x) (= x f)))]
(reduce (reduce
(fn [_ [ps f]] (fn [_ [ps f]]
(let [match (loop [[p & pr] path, [pp & ppr] ps] (when (and (>= (count path) (count ps)) (every? identity (map match path ps)))
(cond (and p pp (match p pp)) (recur pr ppr) (reduced f)))
(= nil p pp) true))]
(when match (reduced f))))
nil path-map))) nil path-map)))
(defn -path-vals [m path-map] (defn -path-vals [m path-map]
@ -30,11 +28,11 @@
(let [p' (conj p k) (let [p' (conj p k)
f (-match p' path-map)] f (-match p' path-map)]
(cond (cond
f (cons [p' (f v)] l) f (conj l [p' (f v)])
(and (map? v) (seq v)) (-path-vals l p' v) (and (map? v) (seq v)) (-path-vals l p' v)
:else (cons [p' v] l)))) :else (conj l [p' v]))))
l m))] l m))]
(reverse (-path-vals [] [] m)))) (-path-vals [] [] m)))
(defn -assoc-in-path-vals [c] (defn -assoc-in-path-vals [c]
(reduce (partial apply assoc-in) {} c)) (reduce (partial apply assoc-in) {} c))