Re: Is this a bug?

*To*: mathgroup at smc.vnet.net*Subject*: [mg13462] Re: Is this a bug?*From*: bruck at math.usc.edu (Ronald Bruck)*Date*: Fri, 24 Jul 1998 01:45:47 -0400*Organization*: University of Southern California, Los Angeles, CA*References*: <6p6oa9$56m@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

In article <6p6oa9$56m at smc.vnet.net>, <jfreeze at lexmark.com> wrote: > >The following seems to be a bug. In the first example, both the true and >the false parts of If are being evaluated. In the secon example, only >the true part. If this is not a bug, could someone please explain this >behavior to me. Thanks > >In[1]:= > Clear[x,y]; > >If[True,Evaluate[ToExpression["x=5"]],Evaluate[ToExpression["y=5"]]]; > Print[x,y]; >Out[1]:= > 55 Quote: "Evaluate[expr] causes expr to be evaluated even if it appears as the argument of a function whose attributes specify that it should be held unevaluated." When you ask for Attributes[If], Mathematica returns {HoldRest, Protected}. Quote: "HoldRest is an attribute which specifies that all but the first argument to a function are to be maintained in an unevaluated form." So it's not a bug. Mathematica's help browser is EXCELLENT. --Ron Bruck