I thought Table should not evaluate the inner code until it inserts the value. I'm confused by
test1[3]="a";
test2[4]="b";
Table[DownValues[i],{i,{test1,test2}}]
which outputs {{}, {}}
where I would have expected it to match
{DownValues[test1],DownValues[test2]}
Compare also with for instance:
test[i]="error";
Table[test[i],{i,{1,2,c}}]
where clearly it does not evaluate test[i] before insertion of the table values. What is going on here?
Table[DownValues[Evaluate@i], {i, {test1, test2}}]
instead. $\endgroup$