MathGroup Archive 2009

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

Search the Archive

Re: Map[] and multiple args function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg96257] Re: Map[] and multiple args function
  • From: Peter Breitfeld <phbrf at t-online.de>
  • Date: Tue, 10 Feb 2009 05:52:31 -0500 (EST)
  • References: <gmp0ps$c0a$1@smc.vnet.net>

sagrailo at gmail.com wrote:

> I know this has to be FAQ, but I'm just not able to find an answer
> anywhere, so - here it goes:  I have a multiple-arguments function,
> say something like:
>    Foo[x_, y_, z_] := x + 2*y + 3*z
> Now, I want to call this function number of times, over different sets
> of arguments, and then to sum results.  I thought about storing
> argument triplets into some kind of list, and then employing sequence
> of Map[] and Apply[] to get the job done.  After number of trials and
> errors, I came up with following piece of code doing the thing:
>   Plus @@ Foo /@ {{1, 2, 3}, {4, 5, 6}} /. List -> Sequence
> but I even don't fully understand what's going here, and also I'm
> wondering is there a "better" way to accomplish this.  So - any
> suggestion?
>
> Thanks.
>

Do you want something like this? Don't use Map (/@) but Apply on the
Level 1 (@@@)

Foo[x_,y_,z_]:= x + 2 y + 3 z;
ll={{1,2,3},{4,5,6}};

Plus@@Foo@@@ll
Out= 46

A short explanation: Foo@@@ll first evaluates to {Foo[1,2,4],Foo[4,5,6]}
then the result to {14,32}

After that Plus@@{14,32} evaluates to Plus[14,32] giving 46.

-- 
_________________________________________________________
Peter Breitfeld, Bad Saulgau --- http://www.pBreitfeld.de


  • Prev by Date: Re: Problem importing HTML with Mathematica
  • Next by Date: Re: Something for this list
  • Previous by thread: Re: Map[] and multiple args function
  • Next by thread: Re: Map[] and multiple args function