I think julia more than other languages has a tendency to stick with
mathematical consistency over some user preferences, which is good. For
that reason, I would be in favor of permutations remaining as is but having
multiset_permutations renamed to something more intuitive, like
uniqueperms, or unique_permutations.

On Sun, Nov 22, 2015 at 2:16 AM Glen O <gjo1...@gmail.com> wrote:

> While it is true that an interpretation of arrays is multisets, that's not
> the only reasonable interpretation. And while the strict interpretation of
> "permutations" suggests it should include duplicates, you have to consider
> what the user would most likely expect it to do. Most would think that a
> list of the permutations would include unique permutations only.
>
> So perhaps both functionalities should be available in the same function
> with a keyword argument. At the very least, the description of the function
> should directly inform the user that it's going to give duplicate
> permutations if the array contains repeat elements.
>
> On Saturday, 21 November 2015 04:24:51 UTC+10, Jiahao Chen wrote:
>>
>> The current behavior of permutations is correct and should not be
>> changed. Combinatorially, arrays are multisets, not sets, since they allow
>> for duplicate entries, so it is correct to produce what look like identical
>> permutations. The redundancy is important for operations that can be
>> expressed as sums over all permutations.
>>
>> Combinatorics.jl currently provides multiset_permutations for generating
>> only distinct permutations:
>>
>>
>> https://github.com/JuliaLang/Combinatorics.jl/blob/3c08c9af9ebeaa54589e939c0cf2e652ef4ca6a0/test/permutations.jl#L24-L25
>>
>

Reply via email to