Looks like it's something that's changed over different clojure releases. On Friday, January 25, 2019 at 3:35:58 PM UTC-8, Brian Craft wrote: > > From the docs: > > r/fold takes a reducible collection and partitions it into groups of > approximately n (default 512) elements. Each group is reduced using the > reducef function. The reducef function will be called with no arguments to > produce an identity value in each partition. The results of those > reductions are then reduced with the combinef (defaults to reducef) > function. When called with no arguments, (combinef) must produce its > identity element - this will be called multiple times. Operations may be > performed in parallel. Results will preserve order. > > So, this seems to say r/fold will partition the collection and reduce each > partition using the (reducef) as the init value. > > Then, all these intermediate results will be reduced with combinef, using > (combinef) as the init value. > > However, in test it seems (reducef) is never called, and (combinef) is > used as the init value for calls to reducef. > > (defn combinef > ([] {:combine :f}) > ([acc v] acc)) > > (defn reducef > ([] {:reduce :f}) > ([acc v] > (println "acc" acc "v" v) > v)) > > (clojure.core.reducers/fold combinef reducef ["foo" "bar"]) > > ; outputs: > acc {:combine :f} v foo > acc foo v bar > "bar" > > The accumulator in reducef is the init value from combinef, not the init > value from reducef. > > What's going on? >
-- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.