Re: multiple variables in pure function used in map.
- To: mathgroup at smc.vnet.net
- Subject: [mg107634] Re: [mg107632] multiple variables in pure function used in map.
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Sun, 21 Feb 2010 04:22:55 -0500 (EST)
- References: <201002201138.GAA13609@smc.vnet.net>
Hi, what you need is to Apply your function (Plus here) to level 1 of your expression: In[1]:= ab = {{1, 2}, {2, 3}, {3, 4}}; The shorthand is @@@: In[2]:= (#1 + #2) & @@@ ab Out[2]= {3, 5, 7} You can also use Plus, which has the advantage that you don't need to know the size of your sublists - they may even have different sizes. In[3]:= Plus @@@ ab Out[3]= {3, 5, 7} Without the shorthand, it looks like: In[4]:= Apply[(#1 + #2) &, ab, 1] Out[4]= {3, 5, 7} In[5]:= Apply[Plus, ab, 1] Out[5]= {3, 5, 7} You can also use Map: In[6]:= Map[Apply[(#1 + #2) &, #] &, ab] Out[6]= {3, 5, 7} In[7]:= Map[Apply[Plus, #] &, ab] Out[7]= {3, 5, 7} In your particular case, it will probably most efficient to use Total with level specification: In[8]:= Total[ab, {2}] Out[8]= {3, 5, 7} Hope this helps. Regards, Leonid On Sat, Feb 20, 2010 at 3:38 AM, pipehappy <pipehappy at gmail.com> wrote: > Hi, All > > Is there a way to use multiple variables in pure function with map. > > What I want to do is like this: > > ab = {{1, 2}, {2, 3}, {3, 4}}; > (#[[1]] + #[[2]]) & /@ ab > {3, 5, 7} > > Instead of refer to elements in list I want to use multiple variables > in pure function. > > something like this: > ab = {{1, 2}, {2, 3}, {3, 4}}; > (#1 + #2) & /@ ab > To do the same thing as the above example. > > Best > > -- pipehappy > >
- References:
- multiple variables in pure function used in map.
- From: pipehappy <pipehappy@gmail.com>
- multiple variables in pure function used in map.