MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Do Modules Produce Side Effects?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg47986] Re: [mg47964] Do Modules Produce Side Effects?
  • From: "J. McKenzie Alexander" <jalex at lse.ac.uk>
  • Date: Tue, 4 May 2004 07:03:18 -0400 (EDT)
  • References: <200405040508.BAA17753@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

> The MathBook definition of Module tells me, "Module creates new
> symbols to represent each of its local variables every time it is
> called."

This is true. But ask yourself, how does Module know what variables are 
to be considered local and what variables are global? Quite often one 
will want to mix local and global variables in the same module.  Hence, 
Module will treat as local only those variables named in the first 
list. If a variable is not listed there, it is assumed to be a global 
variable. In your example, you did not tell Module to treat 'm' as a 
local variable.

In[1]:= m=i^2
Out[1]= i^2

In[2]:= Module[{m},m=4;2*m]
Out[2]= 8

In[3]:= m
Out[3]= i^2

> I am led by this, and other Module descriptions, to conclude
> Modules do not produce side effects, like Blocks do.

Modules can produce side effects as well. It entirely depends on 
whether one uses global variables inside the module in addition to 
local variables.

Jason
--
Dr J. McKenzie Alexander
Department of Philosophy, Logic and Scientific Method
London School of Economics and Political Science
Houghton Street, London WC2A 2AE



  • Prev by Date: Re: Do Modules Produce Side Effects?
  • Next by Date: Re: Do Modules Produce Side Effects?
  • Previous by thread: Re: Do Modules Produce Side Effects?
  • Next by thread: Re: Do Modules Produce Side Effects?