Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1998
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1998

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

Search the Archive

Re: Disappearing variables

  • To: mathgroup at smc.vnet.net
  • Subject: [mg13799] Re: [mg13759] Disappearing variables
  • From: Jon Prudhomme <prudhomj at elwha.evergreen.edu>
  • Date: Fri, 28 Aug 1998 04:18:22 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

> I want to to define a variable inside a function, as follows: f:=x=123;
> Whenever I run f, x should be given the value of 123, and if x doesn't
> exist, it should be created. However:
> 
> In[1]:= f:=x=123;
> In[2]:=f
> Out[2]:=123
> In[3]:=x
> Out[3]:=123        ** x exists
> In[4]:=Remove[x];
> In[5]:=f
> Out[5]:=123  ** f seems to work 
> In[6]:=x
> Out[6]:=x     ** x doesn't exist anymore, even though f worked
> 
> It seems like x is created when I initially define f, whereas since f is
> SetDelayed,  x should be created when I run f.  Does anyone know why x
> is not created when I run f?

Your problem is that when you Remove a symbol, Mathematica goes through 
all of the previous definitions to note that that symbol has been
removed.

In[7]:=?f
Out[7]:=Global`f
	f:=Removed["x"]=123


'f:=ToExpression["x=123"]' is probably closer to what you want.



  • Prev by Date: Defining differential operators question
  • Next by Date: Re: Animation
  • Previous by thread: Re: Disappearing variables
  • Next by thread: Re: Disappearing variables