Re: Do Modules Produce Side Effects?
- To: mathgroup at smc.vnet.net
- Subject: [mg47980] Re: Do Modules Produce Side Effects?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 4 May 2004 07:03:13 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <c778ms$hf7$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, sind out what "Module creates new symbols to represent EACH OF ITS LOCAL VARIABLES evey time it is called." the local varaibels are in a call Module[{},...] Only Module[ {m}, m=4; 2*m ] will do what you want, because here m *is* a local variable. The construct Module[{},...] is total useless. Regards Jens 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