Re: Mapping a pure function with 2 conponents.
- To: mathgroup at smc.vnet.net
- Subject: [mg77385] Re: Mapping a pure function with 2 conponents.
- From: "Dr. Wolfgang Hintze" <weh at snafu.de>
- Date: Thu, 7 Jun 2007 04:06:10 -0400 (EDT)
- Organization: privat
- References: <f43i20$3hl$1@smc.vnet.net>
- Reply-to: "Dr. Wolfgang Hintze" <weh at snafu.de>
<phoenix7744 at gmail.com> schrieb im Newsbeitrag news:f43i20$3hl$1 at smc.vnet.net... > I'm trying to get the following code to work: > > Map[#1^2 + #2 &, {{0, 1}, {2, 3}, {4, 5}}] > > The goal is to use a pure function in order to achieve the result: > {1, 7, 21} > > The issue is that the evaluation involves #1^2 + #2 & [{0,1}] > instead of #1^2 + #2 & [0,1] > > Thanks, in advance. > > I found two possible solutions a) using two slots (#1, #2) #1^2 + #2 & @@@ {{0, 1}, {2, 3}, {4, 5}} {1, 7, 21} Timing[Do[#1^2 + #2 & @@@ {{0, 1}, {2, 3}, {4, 5}}, {10^6}]] {7.094 Second, Null} Remark: the same construct in input format looks like this Apply[#1^2 + #2 & , {{0, 1}, {2, 3}, {4, 5}}, {1}] {1, 7, 21} b) using one slot(#) and its components (#1[[1]]^2 + #1[[2]] & ) /@ {{0, 1}, {2, 3}, {4, 5}} {1, 7, 21} Timing[Do[(#1[[1]]^2 + #1[[2]] &) /@ {{0, 1}, {2, 3}, {4, 5}}, {10^6}]] {9.891 Second, Null} Hence the two slot version is slightly faster. Regards, Wolfgang