Re: Giving several functions the same argument

*To*: mathgroup at smc.vnet.net*Subject*: [mg109607] Re: Giving several functions the same argument*From*: Ray Koopman <koopman at sfu.ca>*Date*: Sat, 8 May 2010 07:05:38 -0400 (EDT)*References*: <hs0pkd$dmm$1@smc.vnet.net>

On May 7, 3:22 am, Simon Pearce <Simon.Pea... at nottingham.ac.uk> wrote: > Hi Mathgroup, > > I have a list of pure functions, which I wish to apply to the same > argument. I can't seem to be able to thread the list of functions over > the argument in a simple way, all the commands like Apply and Map etc > take a single function. I can do it using Table and Part, but it seemed > like there should be a simple command that I'm missing. > > For example: > > In[1]:= functs = {Sin[#1] &, Cos[#1] &}; > > In[2]:= functs[x] > > Out[2]= {Sin[#1] &, Cos[#1] &}[x] > > I want to get the result {Sin[x],Cos[x]} out, without having to use > something of the form: > > In[3]:= Table[functs[[i]][x], {i, 1, 2}] > > Out[3]= {Sin[x], Cos[x]} > > Which seems like it'd be less efficient when I try and use it on long > lists of functions. > > Thanks, > > Simon In[1]:= funx = {Sin,Cos,Tan,Sinh,Cosh,Tanh,whatever} Out[1]= {Sin,Cos,Tan,Sinh,Cosh,Tanh,whatever} In[2]:= #[x]& /@ funx Out[2]= {Sin[x],Cos[x],Tan[x],Sinh[x],Cosh[x],Tanh[x],whatever[x]}