Dear Forum,

Could someone please explain to me why in some cases
a function call may result in a change of the argument's
value while in others it does not. (See in the two examples below
the behavior of the value of "a"). The chapter 4.10
of the manual says that for each argument of a function
GAP allocates a new variable. Doesn't it mean that
the initial variable's value should always remain intact?

Thank you,
Anvita

### Example 1 ###

gap> f1:=function(l)
> l[1]:=l[1]+1;
> return l;
> end;
function( l ) ... end
gap>
gap> a:=[1];
[ 1 ]
gap> b:=f1(a);
[ 2 ]
gap> a;
[ 2 ]

### Example 2 ###

gap> f2:=function(l)
> l:=l+1;
> return l;
> end;
function( l ) ... end
gap>
gap> a:=1;
1
gap> b:=f2(a);
2
gap> a;
1
-------------------------------
_______________________________________________
Forum mailing list
[email protected]
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to