Wow, I had forgotten how much had changed from Clojure 1.2 to 1.3 and
beyond.  There were three separate incompatibilities with 1.2.

I have addressed them and pushed a 0.1.1 release which is
backwards-compatible to 1.2.

--Mark


On Fri, Mar 20, 2015 at 7:11 AM, Alex Miller <a...@puredanger.com> wrote:

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

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