The main internal protocol is really CollReduce for collections that can reduce themselves. InternalReduce is for concrete seq implementations that can reduce themselves.
For cases where you are creating new things, you can also plug in a little more easily by implementing the IReduceInit (reduce with an init value) or IReduce (extends IReduceInit for the case where an init value is not supplied) Java interfaces. I would generally prefer these if you are creating a new thing. On Friday, April 29, 2016 at 2:41:10 PM UTC-5, Camilo Roca wrote: > > puzzler, > No, Clojure actually has quite a lot of protocols for reducing "things". > But they are so many that I got lost in which does what and how, so I > wanted a clarification on the subject. > > Alex miller, excellent answer already gave me some overview of the topic. > > Here is a link to Clojure's protocols for reduce: > https://github.com/clojure/clojure/blob/master/src/clj/clojure/core/protocols.clj > > <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fclojure%2Fclojure%2Fblob%2Fmaster%2Fsrc%2Fclj%2Fclojure%2Fcore%2Fprotocols.clj&sa=D&sntz=1&usg=AFQjCNEw9QmBOeBqHioMJEhGeBYF_N2gTA> > > El viernes, 29 de abril de 2016, 21:17:42 (UTC+2), puzzler escribió: >> >> By "internal reduce", are you all talking about the Clojure reducers >> library, or something else? >> >> -- 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.