Re: Changing delayed formula
- To: mathgroup at smc.vnet.net
- Subject: [mg35486] Re: [mg35461] Changing delayed formula
- From: "Julio Vera" <jvera at adinet.com.uy>
- Date: Tue, 16 Jul 2002 04:49:46 -0400 (EDT)
- References: <200207130749.DAA08590@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, Thank you very much for the very useful information sent on this issue. I had tried Outer, but was not able to make it work properly, since I did not use Sequence. It took a while, but I think I understood how Sequence works now. This definitely solves my problem. Distribute works too, but it needs an extra step to substitute the commas in the sublists by &&. I had seen Map, but didn´t understand it. I was substituting it with a forced use of Table. This was valuable information to receive, too. The question about the "growing" delayed formula was not answered, since it became unnecessary. Maybe a formula of the sort is of no use within Mathematica. Even though it might be strictly theoretical, or out of sheer curiosity, I would like to know if it is possible to define such a delayed formula. I can define both sides of the formula independently, but when I join them, the result does not work. Though it is not rejected by Mathematica, it is as if it was not defined. The output is the same as the one obtained without defining the formula. Thanks again for all the help. Julio ----- Original Message ----- From: "Julio Vera" <jvera at adinet.com.uy> To: mathgroup at smc.vnet.net Subject: [mg35486] [mg35461] Changing delayed formula > > 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 > >
- References:
- Changing delayed formula
- From: "Julio Vera" <jvera@adinet.com.uy>
- Changing delayed formula