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 [email protected]
To unsubscribe from this group, send an email to
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org