Re: pure functions
- To: mathgroup at smc.vnet.net
- Subject: [mg23291] Re: [mg23237] pure functions
- From: "Rosa Ma. Seco" <ceie at prodigy.net.mx>
- Date: Sun, 30 Apr 2000 21:13:41 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Helge Andersson wrote: 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? --- Well, unless you specifically want to use pure functions in your example, why not simply use Apply? In[1]:= exli={{1,2},{3,4},{5,6},{7,8}}; In[4]:= Apply[Plus,exli,2] Out[4]= {3,7,11,15} But if you want to force the use of a pure function in this case, write In[5]:= (Plus@@#&)/@exli Out[5]= {3,7,11,15} which is just a different way of writing the same thing. I think the following statement should answer your second question: "Select[list, f] selects elements of list using the function f as a criterion. Select applies f to each element of list in turn, and keeps only those for which the result is True"(Cf. The Book, 2.2.7). Tomas Garza Mexico City