Re: Pattern Matching Problem

• To: mathgroup at smc.vnet.net
• Subject: [mg43416] Re: Pattern Matching Problem
• From: bghiggins at ucdavis.edu (Brian Higgins)
• Date: Tue, 16 Sep 2003 04:36:33 -0400 (EDT)
• References: <bihp1v\$b3u\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Ted, Here is a kludge approach:

Flatten[{DeleteCases[expr, f[_, _], Infinity],
Apply[Plus, Split[Sort[Cases[expr, f[_, _], Infinity], #2[[2]] >
#1[[2]] & ], #1[[2]] == #2[[2]] & ], 1]}]

Cheers,

Brian

"Ersek, Ted R" <ErsekTR at navair.navy.mil> wrote in message news:<bihp1v\$b3u\$1 at smc.vnet.net>...
> Consider the following:
>
> In[1]:=
>   ClearAll[f,a,b,c,w,x,y,z];
>   expr=a+b+c+f[w,2]+f[w,3]+x+f[x,2]+f[x,3]+y+f[y,2]+f[z,2];
>
>
> Can somebody suggest a general way to seperate the terms above into like
> groups. By "like" I mean having the same second argument for (f).  So for
> this example I want to get
>
> {a+b+c+x+y,  f[w,2]+f[x,2]+f[y,2]+f[z,2],   f[w,3]+f[x,3]}
>
> The pattern matcher should be able to do this because Plus has attributes
> Flat and Orderless.  However I can't find a way to make it happen.
>
> -------------------
> Thanks,
>    Ted Ersek

```

• Prev by Date: Re: Mathematica refuses to evaluate?
• Next by Date: Defining a function
• Previous by thread: Re: Mathematica refuses to evaluate?
• Next by thread: Re: Pattern Matching Problem