MathGroup Archive 2004

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

Search the Archive

Re: composing functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg45540] Re: composing functions
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Tue, 13 Jan 2004 04:03:55 -0500 (EST)
  • Organization: Universitaet Leipzig
  • References: <btthta$so5$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

what is with

{{f, g, h}, {a, b, c, d}} /. {{l1__}, {l2__}} :> Composition[l1][l2] //. 
  h_[q_, p_, r__] :> Sequence[h[q, p], r]

Regards
  Jens

Pedro L wrote:
> 
> Hi!
> 
> I  would  like  to find a way for composing a list of functions over a
> list of numbers.
> 
> I  have  the  list  {{f,  g,  h},  {a,  b, c, d}}
> (f, g, h are functions and a, b, c, d are numbers)
> I would like to obtain h[g[f[a, b], c], d]
> 
> Since  it's  for a real program, I had to do it in "any" way. So I did
> it as I show below:
> 
> In[1]:= kk = {{f, g, h}, {a, b, c, d}}
> 
> Out[1]= {{f, g, h}, {a, b, c, d}}
> 
> In[2]:= result1 = {kk[[2,1]]}; For[i = 1, i < Length[kk[[2]]], i++, AppendTo[result1, kk[[1,i]]];
>             AppendTo[result1, kk[[2,i + 1]]]]; result1
> 
> Out[2]= {a, f, b, g, c, h, d}
> 
> In[3]:= result2 = StringJoin @@ ToString /@ result1
> 
> Out[3]= afbgchd
> 
> In[4]:= result3 = StringInsert[result2, "~", Range[2, StringLength[result2]]]
> 
> Out[4]= a~f~b~g~c~h~d
> 
> In[5]:= result4 = ToExpression[result3]
> 
> Out[5]= h[g[f[a, b], c], d]
> 
> But I'm really sure that it can be done much better.
> 
> Could you help me?


  • Prev by Date: Re: composing functions
  • Next by Date: what is the general theory of extracting solutions from DSolve (and similar) functions
  • Previous by thread: Re: composing functions
  • Next by thread: RE: composing functions