Hi,
Am 22.11.2009 um 22:32 schrieb samppi:
(defn vary [coll & keys-and-fns]
(let [fn-map (apply arrray-map keys-and-fns)
keys-and-vals (mapcat #((val %) (get coll (key %))) fn-map)]
(apply assoc-args coll keys-and-vals)))
As Jon said: update-in.
(-> coll
(update-in [:x] fn-x)
Ah, update-in is exactly what I need. Excellent, thank you.
On Nov 22, 2:38 pm, John Harrop wrote:
> On Sun, Nov 22, 2009 at 4:32 PM, samppi wrote:
> > Does a function that does this:
> > (vary coll :x fn-x, :y fn-y)
> > ; Equivalent to (assoc coll :x (fn-x (:x coll)), :y (fn-y (:y
> > coll)))
On Sun, Nov 22, 2009 at 4:32 PM, samppi wrote:
> Does a function that does this:
> (vary coll :x fn-x, :y fn-y)
> ; Equivalent to (assoc coll :x (fn-x (:x coll)), :y (fn-y (:y
> coll)))
> exist in the core or contrib APIs?
>
> I'm surprised that I can't find any. It's a very natural extension o
Does a function that does this:
(vary coll :x fn-x, :y fn-y)
; Equivalent to (assoc coll :x (fn-x (:x coll)), :y (fn-y (:y
coll)))
exist in the core or contrib APIs?
I'm surprised that I can't find any. It's a very natural extension of
assoc. But if there really isn't any, is the code below th