The module
BracketedVector[letter_,n_]:=Module[{i}, name=Symbol[letter], Return[Table[name[i],{i,n}]]];
called as
Q=.; v=BracketedVector[“Q”,4];
returns {Q[1],Q[2],Q[3],Q[4]} as expected but
Q=aaa; v=BracketedVector[“Q”,4];
returns {aaa[1],aaa[2],aaa[3],aaa[4]} - not good. It is necessary to clear Q before the call:
Q=aaa; Q=.; v=BracketedVector[“Q”,4];
works OK. To clean the logic I tried to put the clear inside the Module but
Symbol[letter]=. generates an error message. Next I tried
BracketedVector[letter_,n_]:=Module[{i}, name=Symbol[letter];
name=.; name=Symbol[letter]; Return[Table[name[i],{i,n}]]];
Doesn’t work either, the value aaa is “remembered” although name is supposed
to be a global variable. Is there a way to clear Q inside the Module?