Re: Changing delayed formula

*To*: mathgroup at smc.vnet.net*Subject*: [mg35464] Re: Changing delayed formula*From*: "Carl K. Woll" <carlw at u.washington.edu>*Date*: Sun, 14 Jul 2002 06:19:35 -0400 (EDT)*Organization*: University of Washington*References*: <agomv1$8er$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Julio, How about Flatten[Outer[And,Sequence@@des]] Carl Woll Physics Dept U of Washington "Julio Vera" <jvera at adinet.com.uy> wrote in message news:agomv1$8er$1 at smc.vnet.net... > > Hi, > > I have a list of lists. it's length (the number of sublists it > contains) varies. > > In[1]:= des={{11,12,13,14},{21,22,23},{31,32},{41,42,43,44,45}} > > Out[1]:= {{11,12,13,14},{21,22,23},{31,32},{41,42,43,44,45}} > > The length of each of the sublists is arbitrary, too. So I have this > list of lengths. > > In[2]:= elems=Flatten[Table[Dimensions[des[[i]]],{i,Length[des]}]] > > Out[2]:= {4,3,2,5} > > I want to obtain the list of all combinations of one element of each > sublist, bounded by &&. This will be a list of 120 elements, each of > them with 4 components. I define a delayed formula, and apply Array to > it (the characters printed as bold are subscripts in the Mathematica > notebook). > > In[3]:= > cond4[a_,b_,g_,d_]:=des[[1,a]]&&des[[2,b]]&&des[[3,g]]&&des[[4,d]] > > In[4]:= combi=Flatten[Array[condLength[des],elems]] > > Out[4]:= > {11&&21&&31&&41,11&&21&&31&&42,11&&21&&31&&43,11&&21&&31&&44,... > > ...14&&23&&32&&42,14&&23&&32&&43,14&&23&&32&&44,14&&23&&32&&45} > > Since the length of des varies, I would have to define cond each time. > For instance: > > cond3[a_,b_,g_,d_]:=des[[1,a]]&&des[[2,b]]&&des[[3,g]] > > I would like to make a definition for cond that would adapt to these > changes automatically. > > I arrived to this solution, which is not rejected by Mathematica, but > does not work, either. > > In[5]:= d[a_,b_]:=des[[a,b<>"_"]] > > In[6]:= Unprotect[ReplaceAll] > > Out[6]:= {ReplaceAll} > > In[7]:= > condLength[des][Table[FromCharacterCode[944+i]<>"_",{i,Length[des]}]]/.{a__} =AEa:=Apply[And,Table[d[i,FromCharacterCode[944+i]<>"_"],{i,Length[des]}]] > > In fact, I quit the kernel and rerun all the cells except the one > written here as In[3]. If not, the definition for cond4 remains as it > was. I was not able to clear cond4 individually. > > Thanks very much for anything you can suggest. > > Best regards, > > Julio Vera > >