[Date Index]
[Thread Index]
[Author Index]
Re: Re: Re: pure function to generate a list of
*To*: mathgroup at smc.vnet.net
*Subject*: [mg77293] Re: [mg77192] Re: [mg77090] Re: pure function to generate a list of
*From*: Bob Hanlon <hanlonr at cox.net>
*Date*: Wed, 6 Jun 2007 07:18:34 -0400 (EDT)
*Reply-to*: hanlonr at cox.net
Clear[f]
f[a_, b_, upperLimits_List] :=
NIntegrate[Sqrt[a*x + b], {x, 0, #}] & /@ upperLimits;
f[2, 3, {0.1, 0.5, 0.9}] == {NIntegrate[Sqrt[2 x + 3], {x, 0, 0.1}],
NIntegrate[Sqrt[2 x + 3], {x, 0, 0.5}],
NIntegrate[Sqrt[2 x + 3], {x, 0, 0.9}]}
True
Bob Hanlon
---- Ruth <ruth.lazkoz at ehu.es> wrote:
>
> 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=C3=B3:
> > 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
> >
> >
> >
>
>
>
>
Prev by Date:
**Re: Dynamic 2D plotting in V6**
Next by Date:
**Re: $CellContext**
Previous by thread:
**Dynamic 2D plotting (V6) - Resend**
Next by thread:
**Customising syntax colouring**
| |