Question: How work those pointers?

Have s:={'a', 'b'};

a:=4;

naturally s[1] resolves to 4. Moreover, eval(s[1],1)=4, so s successfully should forget about a.

But...

a:='a'; and s[1] returms... again a.

So, why dereferencing of pointers  is not the same as 'eval 1-level' resolving?

How actually can i unassign 'a' having s only?

Or (not obviously, but same!) related question:

how to obtain s1:={'a', 'b'} having s={a,b} with nonresolvable a and b .i.e. eval(smth, -1)?

It's all related to  code support without restart...

Please Wait...