Re: composing functions

*To*: mathgroup at smc.vnet.net*Subject*: [mg45538] Re: composing functions*From*: Paul Abbott <paul at physics.uwa.edu.au>*Date*: Tue, 13 Jan 2004 04:03:53 -0500 (EST)*Organization*: The University of Western Australia*References*: <btthta$so5$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

In article <btthta$so5$1 at smc.vnet.net>, Pedro L <pedrito6 at softhome.net> wrote: > 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] Here is one way: {fs, vars} = {{f, g, h}, {a, b, c, d}}; i = 0; Fold[List,First[vars],Rest[vars]] /. List :> Reverse[fs][[++i]] If you change Fold to have the HoldFirst attribute, Unprotect[Fold] SetAttributes[Fold, HoldFirst] Protect[Fold] then you can write i = 0; Fold[fs[[++i]], First[vars], Rest[vars]] I'm sure that someone will come up with a more elegant solution. Cheers, Paul -- Paul Abbott Phone: +61 8 9380 2734 School of Physics, M013 Fax: +61 8 9380 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul