Hi François,

> I have some questions about semantics and typographics convention in :
> 
> 1/ Permutation
> 2/ PermutationGroupElement
> 3/ permutations (with lower p)
> 4/ Permutations
> 
> Suppose I don't know Sage. How can I imagine the design of each function ?
> What is the first (question or) answer I must get ?
> I suppose it's to know if I create a new object ?
> 
> Permutations and PermutationGroupElement have almost the same name
> but type and parent are different.

First of all in my opinion 3/ should be deprecated. The same effect could be
achieved using Permutations:

    sage: Permutations([1,1,2,2,2]).list() == permutations([1,1,2,2,2])
    True

The convention is that creating an object goes through a so-called
constructor of a class and should be capitalized. Moreover the code says:

    def permutations(mset):
        from sage.combinat.permutation import Permutations
        ans = Permutations(mset)
        return ans.list()

Maybe it is also to ensure a compatibility with M* but I think it is more
confusing that anything else.

1/ vs. 4/ is the standard usage is combinatorics: Permutations() is the set of
all permutations, Permutations([1,2,3,4]) is the *set* of the permutations of
[1,2,3,4] whereas Permutation([1,2,3,4]) is the permutation [1,2,3,4]. This is
a rather well followed usage in combinatorics: Partitions vs Partition /
DyckWords vs DyckWord, BinaryTrees vs BinaryTree... etc.

1/ vs 2/ a Permutation is a combinatorial data structure which is not
necessarily seen as an element of a group. It could be for example an ordering
of a set. On the contrary, PermutationGroupElement is an element of a
permutation Group.

I hope this helps

Cheers,

Florent

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to