Re: Split in Mathematica 2.2
- To: mathgroup at smc.vnet.net
- Subject: [mg12840] Re: Split in Mathematica 2.2
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Wed, 17 Jun 1998 00:27:47 -0400
- Sender: owner-wri-mathgroup at wolfram.com
For any one who interested in this topic: here is quite fast functional
program which simulates Split and works in Mathematica 2.2. It's based
on the same idea as Xah Lee procedural code: find the places where the
sequence should be split, insert markers and use Take. My earlier
version had a couple of bugs in it: it did not work when elements were
themselves lists (pointed out by Xah Lee) and got into trouble if the
list contained a repeat element at the beginning. This one should work
always (I hope).
split[l_,fQ_:SameQ]:=
Module[{m,H},
Map[Take[l,#]&,
Partition[
Insert[Insert[
Flatten[
Position[
Partition[Map[#/.List->H&,l],2,1]/.{x_,y_}/;Not[fQ[x,y]]->
m,m]],0,1],Length[l],-1],2,1]/.{a_,b_}->{a+1,b}]/.H->
List]
Andrzej Kozlowski