Re: No transducer variant of partition?

2016-10-12 Thread Mars0i
Thanks Christophe.  Very nice.  I may use partition, or something else as 
the need arises.

-- 
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.


Re: No transducer variant of partition?

2016-10-12 Thread Christophe Grand
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  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.


No transducer variant of partition?

2016-10-11 Thread Mars0i
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.