Re: Applying List of Functions To List Of Arguments
- To: mathgroup at smc.vnet.net
- Subject: [mg30203] Re: Applying List of Functions To List Of Arguments
- From: Roland Franzius <Roland.franzius at uos.de>
- Date: Thu, 2 Aug 2001 03:15:58 -0400 (EDT)
- References: <9k88rv$55o$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
among the many possible ways I would try these solutions:
1. Use a permanent definition of a listable function , say Eval
F={f,g,h};X{x,y,z};
SetAttributes[Eval,Listable];
Eval[f_,x_]:=f[x];
Eval[F,X]
{f[x],g[y],h[z]}
This definition would always go down to the lowest level of lists with
equal tree structure pairing functions and their arguments
2. Do it on the fly using Inner[ ] with an applicating function on pairs
and List instead of Plus
Inner[ ( #1[#2]& ) , F, X, List]
{f[x],g[y],h[z]}
3. or by pairing and pattern replacement
Transpose[{F,X}]/.{a_,b_}:>a[b]
Pattern replacement may be inconvenient if 2-sublists exist in arguments.
4. or by pairing and mapping an Apply of the
Evaluation-of-function-at-argument onto the pairs {f,x}
(#1[#2]&)@@@Transpose[{F,X}]
Regards
Roland Franzius
Ronnen Levinson wrote:
> Hi.
>
> What function or operator will let me apply a list of functions to a
> list of arguments? That is, I'd like to apply {f1,f2,f3} to {a,b,c} to
> get {f1[a],f2[b],f3[c]}.
>
> Yours truly,
>
> Ronnen.