Dear Dmytro, 1) In your example, it is fine to use
List(l, x->List(x)); Maybe I would use only the notation List(l, ShallowCopy ) to make more it more visible what's going on. 2) Besides this, if l is a matrix, you may use MutableCopyMat, that will use exactly List(l, ShallowCopy ) to produce the output: gap> l := [ [1,2], [3,4] ]; [ [ 1, 2 ], [ 3, 4 ] ] gap> MakeImmutable(l); gap> IsMutable(l[1]); false gap> IsMutable(l); false gap> m:=MutableCopyMat(l); [ [ 1, 2 ], [ 3, 4 ] ] gap> IsMutable(m); true gap> IsMutable(m[1]); true There are no other functions in GAP for more general cases. Best wishes, Alexander On 16 Jun 2007, at 02:03, Dmytro Savchuk wrote:
Dear Forum, I have one simple question. Suppose we have an immutable list whose entries are immutable lists (e.g. l := [ [1,2], [3,4] ] ). What is the easiest way to make a mutable copy of this structure (so that the entries become also mutable). The one I came up with is obvious List(l, x->List(x)); It works here (where I need it), but what if the dimension of the list is bigger than 2? Maybe there is something more general? Or it is necessary to use some recursion? Thank you! Dmytro Savchuk
_______________________________________________ Forum mailing list [email protected] http://mail.gap-system.org/mailman/listinfo/forum
