Message Boards Message Boards

local variables

Posted 9 years ago

I need to build functionalities based on Table function.

In[42]:= Table[{u, v}, {u, {1, 2, 3}}, {v, {4, 5}}]

Out[42]= {{{1, 4}, {1, 5}}, {{2, 4}, {2, 5}}, {{3, 4}, {3, 5}}}

So I put it in a function :

f[x_, y_] := Table[{u,v}, {u, x}, {v, y}]

f perfectly works for the previous example:

In[2]:= f[{1, 2, 3}, {4, 5}]

Out[2]= {{{1, 4}, {1, 5}}, {{2, 4}, {2, 5}}, {{3, 4}, {3, 5}}}

but it doesnt work in that case :

In[3]:= f[{a, b, c}, {u, v}]

Out[3]= {{{a, a}, {a, v}}, {{b, b}, {b, v}}, {{c, c}, {c, v}}}

As an evidence, local variable is the point. If I create a function, the first property I expect is encapsulation. I don't need interference with caller symbol space, especially for iterators.

So what is the correct way to make iterators "isolated", no interfering with the parameters content ?

Regards

2 Replies

I'm looking at the documentation about Module at this time. very instructive...

Thank you very much for your help.

Try

 f[x_, y_] := Module[{u, v}, Table[{u, v}, {u, x}, {v, y}]]
POSTED BY: Ilian Gachevski
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract