       Re: Changing delayed formula

• To: mathgroup at smc.vnet.net
• Subject: [mg35468] Re: [mg35461] Changing delayed formula
• From: BobHanlon at aol.com
• Date: Sun, 14 Jul 2002 06:19:40 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```In a message dated 7/13/02 5:43:25 AM, jvera at adinet.com.uy writes:

>I have a list of lists. it's length (the number of sublists it
>contains) varies.
>
>In:= des={{11,12,13,14},{21,22,23},{31,32},{41,42,43,44,45}}
>
>Out:= {{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:= elems=Flatten[Table[Dimensions[des[[i]]],{i,Length[des]}]]
>
>Out:= {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:=
>cond4[a_,b_,g_,d_]:=des[[1,a]]&&des[[2,b]]&&des[[3,g]]&&des[[4,d]]
>
>In:= combi=Flatten[Array[condLength[des],elems]]
>
>Out:=
>{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:= d[a_,b_]:=des[[a,b<>"_"]]
>
>In:= Unprotect[ReplaceAll]
>
>Out:= {ReplaceAll}
>
>In:=
>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. 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.

des={{11,12,13,14},{21,22,23},
{31,32},{41,42,43,44,45}};

Note the length of the elements of des is given by

Length /@ des

{4,3,2,5}

However, this is unnecessary to your problem.  The desired result is just

Flatten[Outer[And, Sequence@@des ]]

Bob Hanlon
Chantilly, VA  USA

```

• Prev by Date: Re: Changing delayed formula
• Next by Date: Re: Re: Graphics Question
• Previous by thread: Re: Changing delayed formula
• Next by thread: RE: Changing delayed formula