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