Re: Hold/Evaluate in Integrate
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Hold/Evaluate in Integrate
- From: bert at netcom.com (Roberto Sierra)
- Date: Wed, 8 Dec 1993 17:08:48 -0800
<<
Can anyone tell me why
Hold[Integrate[Evaluate[x+x], x]]
returns
Hold[Integrate[Evaluate[x+x],x]]
not Hold[Integrate[2x, x]]?
>>
Probably for the same reason that
Hold[2+Evaluate[2+2]]
returns
Hold[2+Evaluate[2+2]]
and not
Hold[2+4]
It would appear that Evaluate *only* applies to the function it appears
in. Integrate does not have attributes Hold, HoldFirst, or HoldRest,
so use of Evaluate with Integrate won't make a difference. Anyway,
since there is an outer hold on the entire expression, the Evaluate
makes no difference and is 'buried'.
Here's a simple workaround -- call the function IntegrateEvaluated,
shown below, which has exactly the same syntax as Integrate (and all
options), but will cause the first argument to be evaluated:
Attributes[IntegrateEvaluated] := {HoldRest};
IntegrateEvaluated[func_,rest__] :=
Hold[Integrate[func,rest]];
With the definition above, you'll get what you want:
In[1]:= IntegrateEvaluated[x+x,x]
Out[1]= Hold[Integrate[2 x, x]]
\\|// "Television is a medium -- it is
- - neither rare nor well done."
o o -- Ernie Kovacs
J roberto sierra
O tempered microdesigns NOTICE:
\_/ san francisco, ca The ideas and opinions expressed
bert at netcom.com herein are not those of the author.