Re: local variables - Module, For loop
- To: mathgroup at smc.vnet.net
- Subject: [mg113115] Re: local variables - Module, For loop
- From: Pierre Albarede <pa.news at free.fr>
- Date: Wed, 13 Oct 2010 12:40:19 -0400 (EDT)
- References: <i8ukij$o9s$1@smc.vnet.net>
Hello, On Oct 11, 11:14 am, Sebastian Schmitt <sschm... at physi.uni- heidelberg.de> wrote: > I'm new to Mathematica with a background mostly in C++. Many times I > have the impression that my style is not natural-Mathematica > (Mathematicaesque so to say). Your impression is correct ! > If I have a For loop in a function like this: > > In[39]:= f[x_] := Module[{}, > For[i = 0, i != x, i++, > Print[i] > ] > ] > You do not need Print to see something. Print is a side-effect. You should use normal output, because it can be used inside expressions, while Print is a dead end (only good for visualizing). The best way to avoid problem with variables is to eliminate them, with functional programming. Your f already exists in Mathematica : it is Range. You should always try to use what is already available. If Range did not exist, you could define it like this : range[x_Integer] := Table[i, {i, x}] where x is a constant and i a local variable or, without any constant or variable to worry about : range = MapIndexed[First@#2 &, Table[_, {#}]] & Good luck.