|
> geg: eine einfache Liste mit nat. Zahlen > > etwa {8,8,8,1,2,1,8,8,7,7,7,1,1,2,2,3} > > gesucht: eine Prozdur so, dass ich erhalte: > > {{8,8,8},{1},{2},{1},{8,8},{7,7,7},{1,1},{2,2},{3}} Das Thema tauchte in dieser oder jener Form in den Programmierwettbewerben früherer (vor Version 3.0) Mathematica-Konferenzen auf, und kann mehr oder weniger elegant gelöst werden. Die zugrundeliegende Funktionalität erweist sich als so nützlich, daß sie nun fest eingebaut ist: In[2]:= Split[{8,8,8,1,2,1,8,8,7,7,7,1,1,2,2,3}] Out[2]= {{8, 8, 8}, {1}, {2}, {1}, {8, 8}, {7, 7, 7}, {1, 1}, {2, 2}, {3}} In[3]:= ?Split Split[list] splits list into sublists consisting of runs of identical elements. Split[list, test] treats pairs of adjacent elements as identical whenever applying the function test to them yields True. Beispiele weiterer interessanter Anwendungen von Split finden Sie in den Unterlagen zu meinem Vortrag "Programming Bits" am IMS'97, siehe <http://www.mathconsult.ch/math/stuff/>. Roman Mäder |