Hey Mark,

This latest release broke all the Clojure 1.2.0 and 1.2.1 builds for 
math.combinatorics 
(http://build.clojure.org/job/math.combinatorics-test-matrix/129/), I think 
due to using an assert arity that didn't exist then? We should either 
change the min version for the test matrix or modify the code to make it 
compatible. I can take care of the former for you if needed.
Alex

On Tuesday, March 17, 2015 at 10:58:45 PM UTC-5, puzzler wrote:
>
> For a while now, the permutations function in the combinatorics library 
> has had special handling for lists with duplicate items.
>
> Example: (permutations [1 2 3]) -> ((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 
> 2) (3 2 1))
> Example: (permutations [1 1 2]) -> ((1 1 2) (1 2 1) (2 1 1))
>
> The new release, version 0.1.0 extends this intelligent handling of 
> duplicate items to combinations and subsets.
>
> There are straightforward computations for counting permutations, 
> combinations, and subsets of n distinct items -- so straightforward it 
> never seemed worth adding to the library.  However, now with the special 
> handling of duplicates, it seems very natural to want to know things like:
>
> (count-permutations [1 1 1 2 2 2]) -> 20  ;not 6!
>
> So I've added count-permutations, count-combinations, and count-subsets 
> which do the obvious things for lists with no duplicates, but for lists 
> with duplicates, computes the count taking into account the special 
> handling of lists with duplicates.  It computes these counts directly, not 
> by iterating through the actual stream of permutations/combinations/subsets.
>
> Similarly, there is now a way to compute the nth 
> permutation/combination/subset without iterating through the result stream.
>
> I've also added two new permutation-related functions:
> drop-permutations lets you efficiently skip over some number of 
> permutations before starting the stream of results.
>
> permutation-index is like nth-permutation in reverse - from a scrambled 
> sortable collection, it will tell you how far into the lexicographic stream 
> of permutations it is located (computed directly without iterating through 
> the stream).
>
> So now you can easily find out in the blink of an eye, for example, that
> "clojurecombinatoricsrocks" is the 169001484919860315564th permutation 
> (0-based) of "abcccceiijklmnoooorrrsstu"
>
> Didn't your life feel empty before learning that important fact?
>
> Enjoy the new functionality!
>
> https://github.com/clojure/math.combinatorics
>
> --Mark Engelberg
>

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

Reply via email to