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