Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Giving several functions the same argument

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109617] Re: Giving several functions the same argument
  • From: Raffy <adraffy at gmail.com>
  • Date: Sat, 8 May 2010 07:07:27 -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

Through[{Sin, Cos}[x]] === {Sin[x], Cos[x]}

I'd imagine this is more efficient however: Function[x, #[x] & /@
{Sin, Cos}][x]

Or more generalized:

gen = Function[v,Function[x,#[x]&/@v]
functs = gen@{Sin,Cos}
functs[x]


  • Prev by Date: Re: Giving several functions the same argument
  • Next by Date: Re: Giving several functions the same argument
  • Previous by thread: Re: Giving several functions the same argument
  • Next by thread: Re: Giving several functions the same argument