How to use Row[Table[{B[i],0,i},{i,0,2}],","]
directly in Do
command? I mean that the following command
Row[Table[{B[i],0,i},{i,0,2}],","]
gives
{B[0], 0, 0},{B[1], 0, 1},{B[2],0,2}
But, the following command returns the error
"Do::nliter: Non-list iterator Row[Table[{B[i], 0, i}, {i, 0, 2}], ,] at position 2 does not evaluate to a real numeric value."
Do[Print[B[0]+B[1]+B[2]],Row[Table[{B[i],0,i},{i,0,2}],","]]
Of course, one can type instead by hand the following:
Do[Print[B[0]+B[1]+B[2]],{B[0],0,0},{B[1],0,1},{B[2],0,2}]
But, I feel that typing an output by hand again is not really an optimal method.
Answer
What you actually want is to create a Sequence
from the Table
to be used as your iterators.
You can do this with
Do[Print[B[0] + B[1] + B[2]], Sequence @@ Table[{B[i], 0, i}, {i, 0, 2}] //
Evaluate]
(*0
1
2
1
2
3*)
Or, so you don't have to force evaluation,
Do[Print[B[0] + B[1] + B[2]], ##] & @@ Table[{B[i], 0, i}, {i, 0, 2}]
Comments
Post a Comment