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.