(defn dissoc-by-kv ;TODO: refactor to dissoc-by (k,v) "Dissociate entities selected by key, value" [m k-pred v-pred] (apply dissoc m (for [[k v] m :when (and (k-pred k) (v-pred v))] k))) (s/fdef update-many :args (s/cat :m map?, :k-pred (s/fspec :args (s/cat :v any?) :ret any?), :f ifn?, :args (s/* any?)) :ret map? :fn #(= (-> % :args :m keys) (-> % :ret keys))) (defn update-many "Select and update map entry. If no selected key, return map as is. NOTE: Only maps are allowed (not associative). Impossible to add an new entry by new unknown key." [m k-pred f & args] (reduce #(apply update %1 %2 f args) m (filter k-pred (keys m)))) (defn spread "Spread one value(selected by key) of map to <maps>. m -> <m> If k is not in m then return [m]. vs is value of k in m. vs = (k m). vs must be seq or set, otherwise throw exception." [m k] (if (contains? m k) (let [vs (m k)] (assert (counted? vs)) (map (fn [m v] (assoc m k v)) (repeat m) vs)) [m]))


리슾 맛좀 봐랏




짧게 쓰면 모니터 하나에 3 칼럼 쌉가능

리슾 쓰고 광명 찾자