Re: Do Modules Produce Side Effects?

*To*: mathgroup at smc.vnet.net*Subject*: [mg47984] Re: [mg47964] Do Modules Produce Side Effects?*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Tue, 4 May 2004 07:03:16 -0400 (EDT)*References*: <200405040508.BAA17753@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

On 4 May 2004, at 14:08, Harold Noffke wrote: > $Version "5.0 for Microsoft Windows [2000] (November 18, 2003)" > > MathGroup: > > The MathBook definition of Module tells me, "Module creates new > symbols to represent each of its local variables every time it is > called." I am led by this, and other Module descriptions, to conclude > Modules do not produce side effects, like Blocks do. However, we have > ... > > In[1]:= m=i^2 > Out[1]= i^2 > > In[2]:= Module[ {}, m=4; 2*m ] > Out[2]= 8 > > In[3]:= m > Out[3]= 4 > > I expected m to remain unchanged from its original i^2. But Module > changed m to 4, just as I would expect a Block to do. > > Am I misunderstanding something about the "side effect safety" of > Modules? > > Regards, > Harold > > Since you did not localize m by including it in curly brackets it remained a global variable. This is in no sense a "side effect" but just the standard distinction between "local" and "global". Andrzej Kozlowski Chiba, Japan http://www.mimuw.edu.pl/~akoz/

**References**:**Do Modules Produce Side Effects?***From:*Harold.Noffke@wpafb.af.mil (Harold Noffke)