Hello,

As the message states, you cannot assign values to elements of an immutable 
list. When you tested your act function at the prompt, you passed it a list 
literal, which is mutable. Presumably Orbit() is passing your function an 
immutable list (which is wise as it preserves the arguments you sent to 
Orbit()), which your function then chokes on. You could try for example using 
ShallowCopy() on the list x which is passed to your function:

gap> act:=function(x,g)
>     local i,y;
>     y:=ShallowCopy(x);
>     for i in [1..Length(y[1])] do y[i]:=Permuted(y[i],g); od;
>     return Permuted(y,g);
> end;
function( x, g ) ... end
gap> act([[1,2],[3,4]],(1,2));
[ [ 4, 3 ], [ 2, 1 ] ]
gap> Orbit(Group((1,2)),[[1,2],[3,4]],act);
[ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 4, 3 ], [ 2, 1 ] ] ]
gap>

As I am a GAP beginner, I can't guarantee that there isn't a better way to do 
this, but it seems to work ;) Here is some more information about mutability: 
http://www.gap-system.org/Manuals/doc/htm/ref/CHAP012.htm#SECT006

Yours,
    Keshav

On Sat, Sep 25, 2010 at 14:36, Benjamin Sambale 
<bsamb...@gmx.de<mailto:bsamb...@gmx.de>> wrote:

 Dear Forum,

I've defined an action of a permutation group on a set of square
matrices in the following way:

act:=function(x,g)
    local i;
    for i in [1..Length(x[1])] do x[i]:=Permuted(x[i],g); od;
    return Permuted(x,g);
end;

This works as expected, for example:

gap> act([[1,2],[3,4]],(1,2));
[ [ 4, 3 ], [ 2, 1 ] ]

However, using the Orbit command gives

gap> Orbit(Group((1,2)),[[1,2],[3,4]],act);
Lists Assignment: <list> must be a mutable list

What is wrong here?

Thanks,
Benjamin Sambale

_______________________________________________
Forum mailing list
Forum@mail.gap-system.org<mailto:Forum@mail.gap-system.org>
http://mail.gap-system.org/mailman/listinfo/forum


________________________________
CONFIDENTIALITY: This email is intended solely for the person(s) named and may 
be confidential and/or privileged. If you are not the intended recipient, 
please delete it, notify us and do not copy, use, or disclose its content. 
Thank you.

Towards A Sustainable Earth: Print Only When Necessary
_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to