Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2000
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2000

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

Search the Archive

Re: pure functions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg23292] Re: [mg23237] pure functions
  • From: Bojan Bistrovic <bojanb at python.physics.odu.edu>
  • Date: Sun, 30 Apr 2000 21:13:42 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

> Hello,
> 
> 
> Of all the nice functions such as Map, Mapall, Thread, Apply .... I have
> not been able to write a simple code to generate the following
> procedure.
> 
> I have a two dimensional list like
> 
> li={{11,12,13,..},{21,22,23,...},{31,32,33,..},...}
> 
> Since i like to use the pure function command I would like to map my
> pure function with arguments #1,#2,#3,.... on all the sublists in li.
> 
> Let me exemplify with a simple pure function that add to numbers.
> (#1+#2)&
> 
> if exli={{1,2},{3,4},{5,6},{7,8}}
> 
> then I want to get the result
> {3,7,11,15}
> 
> One solution, but not allways suitable for me, is the following
> 
> (#1+#2)&[Sequence @@ Transpose[exli]].
> 
> I want to get rid of the Transpose command and if possible also making
> use of the /@ notation for Map. Since I have seen so many elegant
> examples in the mailing lists I hope  I can get something out of this.
> 
> Finally, When using pure functions inside Mathematica defined functions
> such as Select for instance,
> Select[{1,2,3,4,5,6},#>3&]
> why don't we need to specify the argument list after the &sign. I can
> figure out that in this case the list sent to the Select command will be
> used as argument list for the pure function but how does this work in
> general. Which are the functions where this feature is possible?
> 
> /Helge
> 

This does the trick:
In[1]:= exli={{1,2},{3,4},{5,6},{7,8}};
In[2]:= ((Plus@@ #1) &) /@ exli
Out[2]= {3,7,11,15}

Parenthesis aren't necessary; they are for the reader's benefit. There's no
need for any argument list in your example since  (#>3)& is applied to every
element of the list, not to the whole list.

Bye, Bojan

--
---------------------------------------------------------------------
Bojan Bistrovic,                                      bojanb at jlab.org
Old Dominion University, Norfolk VA & Jefferson Lab, Newport News, VA
---------------------------------------------------------------------


  • Prev by Date: Re: Generating Random Values with Do[]
  • Next by Date: Re: pure functions
  • Previous by thread: Re: pure functions
  • Next by thread: Re: pure functions