[Date Index] [Thread Index] [Author Index]
Re: Problem with Patterns and Integrate
On 11/28/11 at 5:53 AM, ejmcinerney at gmail.com (Jack McInerney) wrote: >There is something about using patterns that I don't understand, and >am hoping someone can shed some light. Here is an example of my >problem. Say I have a function f[x] and I take the derivative of >it. I can then integrate it and get f[x] back: >In:= expr = D[ f[x], x ] Out= f=E2=80=B2[x] >In:= Integrate[expr, x] Out= f[x] >If I use a ReplaceAll and a pattern to do the integration, the >Integrate function treats f'[x] as a constant and returns the wrong >answer: >In:= expr /. func_ -> Integrate[func,x] Out= x >f=E2=80=B2[x] >Any thoughts as to what I am doing wrong? Yes, for this application you need to use RuleDelayed (:>) instead of what you did. The key is when the rule is evaluated. When you use -> the Integrate[func,x] is evaluated immediately to func x and the replacement rule is equivalent to func_->func x. Instead, if you use RuleDelayed (:>) evaluation of Integrate[func,x] takes place after f'[x] is substituted for func and you get the result you were looking for.