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