Not a rational for why there's no partition transducer in core but I have a partition transducer in this lib (https://github.com/cgrand/xforms).
=> (sequence (x/partition 3) (range 8)) ([0 1 2] [3 4 5]) => (sequence (x/partition 3 2) (range 8)) ([0 1 2] [2 3 4] [4 5 6]) => (sequence (x/partition 3 2 "padding") (range 8)) ([0 1 2] [2 3 4] [4 5 6] [6 7 \p]) Additionally when the last argument is a function it's considered to be a transducer for each partition. => (sequence (x/partition 3 (x/reduce +)) (range 8)) (3 12) And you can get fancy: => (sequence (x/partition 3 (x/transjuxt {:sum (x/reduce +) :avg (x/reduce x/avg) :items (x/into [])})) (range 8)) ({:sum 3, :avg 1, :items [0 1 2]} {:sum 12, :avg 4, :items [3 4 5]}) On Wed, Oct 12, 2016 at 6:14 AM, Mars0i <marsh...@logical.net> wrote: > partition-all has a transducer variant, but partition doesn't. Just > curious why. > > The difference between the non-transducer functionalities is that, for > example, (partition-all n coll) will return shorter-than-n stub sequences > at the end of the main output sequence if the (count coll) isn't divisible > by n, while partition will simply stop ignore leave the short sequences out > of the main sequence (unless you use the four-argument syntax, in which an > extra argument is used to construct extra sequences at the end of the main > sequence as needed to use up the input sequence). > > -- > 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. > -- On Clojure http://clj-me.cgrand.net/ Clojure Programming http://clojurebook.com Training, Consulting & Contracting http://lambdanext.eu/ -- 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.