[GAP Forum] protecting variables ( MakeImmutable )

kroeker kroeker at uni-math.gwdg.de
Fri Mar 2 17:43:37 GMT 2012


Dear GAP-Forum,


I am a little bit confused about protecting variables.
Is it possible in all cases, and if not, will this be possible in future 
versions of GAP?

For example, I failed to protect a 'Property':


######################################
exampleRec := rec();
exampleRec.IsShape := NewProperty("IsShape",IsObject);
InstallMethod(exampleRec.IsShape , "" ,[IsObject],
function(obj)
     return false;
end
);

exampleRec.IsShape := MakeImmutable(exampleRec.IsShape);
exampleRec := MakeImmutable(exampleRec);

IsMutable(exampleRec);
IsMutable(exampleRec.IsShape);

InstallMethod(exampleRec.IsShape , "" ,[IsObject],
function(obj)
     return true;
end
);
# I would expect an error , but there is none!

exampleRec.IsShape(4);
######################################


My second question is, how to define  local constants?
For example, I would like to protect  'constantInt':

######################################
     local constantInt;
     constantInt := 5;
     # how to protect  constantInt?
######################################


Thanks,


Jakob



More information about the Forum mailing list