Re: Variables Within Homemade Functions
- To: mathgroup at smc.vnet.net
- Subject: [mg69593] Re: Variables Within Homemade Functions
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sun, 17 Sep 2006 06:57:02 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <eegb90$lm$1@smc.vnet.net>
Gregory Lypny wrote:
> Hello everyone,
>
> How can I ensure that variables in my home made function do not
> conflict with variables with the same name outside the function? Say
> I have a variable, t, whose value in my notebook is 17. I've brought
> in a function from another notebook, myFunction, that contains a
> variable named t, and in running the function, t will take on a
> value. Unfortunately, both t's are the same. Is there any way to
> make the t within the my function a local variable just like index
> counters in the Table and Do functions?
>
> Regards,
>
> Greg
>
> t=17
>
> myFunction[x_]:=(t=someOtherValue; rest of function here)
>
Gregory,
Module [1] is your friend here:
In[1]:=
t = 17;
myFunction[x_] :=
Module[
{t = someOtherValue},
Print["my local t is equal to ", t]
];
Print["t is equal to ", t];
myFunction[2];
Print["t is equal to ", t];
From In[1]:=
t is equal to \[InvisibleSpace]17
From In[1]:=
my local t is equal to \[InvisibleSpace]someOtherValue
From In[1]:=
t is equal to \[InvisibleSpace]17
Also, you should have a look at With and Block.
Regards,
Jean-Marc
[1] http://documents.wolfram.com/mathematica/functions/Module