MathGroup Archive 2002

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

Search the Archive

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
>
>



  • Prev by Date: Re: mathematicalink for excel xp
  • Next by Date: Re: mathematicalink for excel xp
  • Previous by thread: Re: Changing delayed formula
  • Next by thread: RE: Changing delayed formula