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:= f:=x=123; > In:=f > Out:=123 > In:=x > Out:=123 ** x exists > In:=Remove[x]; > In:=f > Out:=123 ** f seems to work > In:=x > Out:=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:=?f Out:=Global`f f:=Removed["x"]=123 'f:=ToExpression["x=123"]' is probably closer to what you want.