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