MathGroup Archive 1993

[Date Index] [Thread Index] [Author Index]

Search the Archive

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





  • Prev by Date: Mathematica Music
  • Next by Date: Motifps
  • Previous by thread: Mathematica Music
  • Next by thread: Motifps