function | since v0.0-1236 | clojure.core.reducers/monoid | Edit |
(monoid op ctor)
Builds a combining fn out of the supplied operator and identity constructor. op must be associative and ctor called with no args must return an identity value for it.
(defn monoid
[op ctor]
(fn m
([] (ctor))
([a b] (op a b))))