Re: Re: pure function to generate a list of integrals]
- To: mathgroup at smc.vnet.net
- Subject: [mg77192] Re: [mg77090] Re: pure function to generate a list of integrals]
- From: Ruth <ruth.lazkoz at ehu.es>
- Date: Tue, 5 Jun 2007 06:51:25 -0400 (EDT)
Thanks to everyone. Bill's was the purest solution of them all (if I
understand correctly the meaning of purity). However, my example was to
naive (linear).
I would like to have a new function with basically the same purity as
Bill's solution
f = #1 Block[{x}, NIntegrate[x, {x, 0, #}] & /@ #2] &;
but this time to be able to produce the equivalent of
{NIntegrate[Sqrt[2x+3], {x, 0, 0.1}], NIntegrate[Sqrt[2x+3], {x, 0, 0.5}],
NIntegrate[Sqrt[2x+3], {x, 0, 0.9}]}
when evaluating f[2,3,{0.1,0.5,0.9}]
Thanks again.
Bill Rowe escribió:
> On 6/2/07 at 4:17 AM, ruth.lazkoz at ehu.es (Ruth Lazkoz Saez) wrote:
>
>
>> I am trying to brush up a long code I have to make it more compliant
>> with the spirit of functional programming. I do not like to hear
>> that the kind of calculations I do should run faster in C, because I
>> suspect that if I managed to write good code in Mathematica it
>> should be as fast. So I have to go and improve my code chunk by
>> chunk.
>>
>
>
>> My first problem is that I want to generate a pure function say f,
>> which, so that f[2, {0.1, 0.5, 0.9}] gives me the same output as
>>
>
>
>> {NIntegrate[2x, {x, 0, 0.1}], NIntegrate[2x, {x, 0, 0.5}],
>> NIntegrate[2x, {x, 0, 0.9}]}
>>
>
> This will do the trick
>
> f = #1 Block[{x}, NIntegrate[x, {x, 0, #}] & /@ #2] &;
>
> Checking:
>
> In[14]:= f[2, {0.1, 0.5, 0.9}]
>
> Out[14]= {0.01,0.25,0.81}
>
> In[15]:= f[3, {0.1, 0.5, 0.9}]
>
> Out[15]= {0.015,0.375,1.215}
> --
> To reply via email subtract one hundred and four
>
>
>