Re:Applying List of Functions To List Of Arguments
- To: mathgroup at smc.vnet.net
- Subject: [mg30214] Re:[mg30181] Applying List of Functions To List Of Arguments
- From: Ranko Bojanic <bojanic at math.ohio-state.edu>
- Date: Thu, 2 Aug 2001 03:16:08 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated Wed,1 Aug 2001 02:19:46-0400 (EDT),rml27 at cornell.edu
(Ronnen Levinson) writes:
> To:mathgroup at smc.vnet.net
> Subject:[mg30181] Applying List of Functions To List Of Arguments
> 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.
The following function does that:
ClearAll[w,f,g,h,x,y,z]
w[f_,x_]:=f[x]
SetAttributes[w,Listable]
w[{f,g,h},{x,y,z}]
{f[x],g[y],h[z]}
It is easy to explain why this works.
Listable functions of 2 variables when applied to two lists of the same
length are automatically threaded over these lists:
w[{f,g,h},{x,y,z}] ={w[f,x],w[g ,y], w[h,z]}
= {f[x], g[y], h[z]}
Without Listability, we have to use Thread, as it was shown recently
by Alan Hayes:
p[f_,x_]:=f[x]
Thread[Unevaluated[p[{f,g,h},{x,y,z}]]]
{f[x], g[y], h[z]}
Ranko