Re: variation on Split [comp.soft-sys.math.mathematica]
- To: mathgroup at smc.vnet.net
- Subject: [mg12683] Re: variation on Split [comp.soft-sys.math.mathematica]
- From: "P.J. Hinton" <paulh>
- Date: Mon, 1 Jun 1998 23:16:54 -0400
- Organization: "Wolfram Research, Inc."
- Sender: owner-wri-mathgroup at wolfram.com
> ------ From "Barthelet, Luc" <lucb at ea.com> > > > Split[{a,b,c,d,d,e,f,g,g,h,h,h}] return > {{a},{b},{c},{d,d},{e},{f},{g,g},{h,h,h}} > > What do you have to do to get: > {{a,b,c},{d,d},{e,f},{g,g},{h,h,h}} How about a wrapper function for Split that postprocesses the output? In[1]:= groupedSplit[lst_List]:= Module[ {splt = Split[lst] }, splt //. ({u___,x_List,{y_}, v___}/; Apply[UnsameQ ,x]&& Length[y] == 0) :> {u,Join[x,{y}],v} ] In[2]:= groupedSplit[{a,b,c,d,d,e,f,g,g,h,h,h}] Out[2]= {{a, b, c}, {d, d}, {e, f}, {g, g}, {h, h, h}} -- P.J. Hinton Mathematica Programming Group paulh at wolfram.com Wolfram Research, Inc. http://www.wolfram.com/~paulh/