List diddling

*To*: mathgroup at yoda.physics.unc.edu*Subject*: List diddling*From*: Richard Mercer <richard at rmercer.wright.edu>*Date*: Tue, 13 Jul 1993 09:10:44 -0400

Martin McClain requests: >Dear MathGroupers: >I need a pure function that operates on {x,{a,b,c}}, >where x, a, b, and c are all simple lists. The output must be >{Ints[x,a],Ints[x,b],Ints[x,c]}, where Ints means Intersection. Try this one: Fudge[{x_List,lsts__List}]:= Map[(Intersection @@ #)&,Prepend[List[#],x]& /@ lsts]; x = {2,3,5,7,11,13}; a = {1,2,3,4,5}; b = {6,7,8,9,10}; c = {11,12,13,14,15}; In[1]:= Fudge[{x,{a,b,c}}] Out[1]= {{2, 3, 5}, {7}, {11, 13}} Obviously this will work with any number of lists replacing {a,b,c}. Experienced Mathematica programmers know better than to claim a "shortest" solution! Perhaps something more elegant will come along. (Incidentally, I have written a routine called ListThread which threads together lists of different lengths. I'd be glad to send it along if you wish.) Richard Mercer