Re: Pattern matching

*To*: mathgroup at smc.vnet.net*Subject*: [mg116548] Re: Pattern matching*From*: Leonid Shifrin <lshifr at gmail.com>*Date*: Sat, 19 Feb 2011 05:13:34 -0500 (EST)

Could do this: In[1]:= f[u] /. f[u + x : _ : 0] -> x Out[1]= 0 Regards, Leonid On Fri, Feb 18, 2011 at 12:33 PM, <"\"Andr=E9 M. Grabinski\""@smc.vnet.net> wrote: > Hi everyone, > > hopefully someone of you could answer me a simple question concerning > patterns in Mathematica 8. Consider the following minimal example, > > > In[1]:= rule = f[u + x_] -> x; > f[u + 5] /. rule > f[u + 0] /. rule > f[u] /. rule > > Out[1]= 5 > > Out[2]= f[u] > > Out[3]= f[u] > > > Now the question: in which way do I need to modify "rule" in order to > get "0" as result for "Out[3]"? Of course I could add a second rule, > i.e. "rule = {f[u + x_] -> x,f[u] -> 0}", but I feel like there should > be a more elegant way than to take care of each and every exception > (okay, in this minimal example this wouldn't matter but I'm just > interested in the general way of setting up patterns). > > Thank you very much in advance, > > A.G. > >