Re: Reevaluation of conditional arguments when the condition has changed

*To*: mathgroup at smc.vnet.net*Subject*: [mg61107] Re: Reevaluation of conditional arguments when the condition has changed*From*: albert <awnl at arcor.de>*Date*: Mon, 10 Oct 2005 02:40:09 -0400 (EDT)*Organization*: Arcor*References*: <200510080649.CAA20991@smc.vnet.net> <diabpq$iim$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi Igor, > You shouldn't expect it because you're using the Set function (=). When > you call: > > expr1 = foo[a b] > > It evaluates the rhs (giving "foo[a b]") and sets that *value* to the > value of > expr1. Note it's *not* the function definition foo[a b], but it's value. > Its value just happened to be the "unevaluated value", but it's still its > value. When you modify the foo function and reevaluate expr1 (I'm assuming > you're simply doing "expr1" in a new cell), you're simply getting that > value that was stored in the variable. > > That is the whole idea behind using Set vs. SetDelayed ( := ) I don't agree, otherwise the following would be a bug: In[1]:= a=b Out[1]= b In[2]:= b=1 Out[2]= 1 In[3]:= a Out[3]= 1 I think the difference between Set and SetDelayed is not the point in what David asked and I also guess that he is very aware of that difference. The question is whether the observation he made is an indiaction of a bug or not. I think it is a bug, even though Carl Woll has posted a workaround and that makes it not a severe problem. Maybe it would be a good idea to at least mention the use of UpValues as one of the possible "special circumstances" in the Update help. On the other hand, the usage of UpValues doesn't seem to be so special after all... albert

**Follow-Ups**:**Re: Re: Reevaluation of conditional arguments when the condition has changed***From:*Igor Antonio <igora@wolf-ram.com>

**References**:**Reevaluation of conditional arguments when the condition has changed***From:*"David Park" <djmp@earthlink.net>