function | since v0.0-1211 | clojure.core/reduce-kv | Edit |
(reduce-kv f init coll)
Reduces an associative collection.
f
should be a function of 3 arguments. Returns the result of applying f
to
init
, the first key and the first value in coll
, then applying f
to that
result and the 2nd key and value, etc.
If coll
contains no entries, returns init
and f
is not called.
Note that reduce-kv
is supported on vectors, where the keys will be the
ordinals.
Reduces an associative collection. f should be a function of 3 arguments. Returns the result of applying f to init, the first key and the first value in coll, then applying f to that result and the 2nd key and value, etc. If coll contains no entries, returns init and f is not called. Note that reduce-kv is supported on vectors, where the keys will be the ordinals.
(defn reduce-kv
([f init coll]
(if (satisfies? IKVReduce coll)
(-kv-reduce coll f init)
(reduce (fn [ret me]
(f ret (-key me) (-val me)))
init coll))))