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.