Re: pure function with optional number of arguments
- To: mathgroup at smc.vnet.net
- Subject: [mg98972] Re: pure function with optional number of arguments
- From: dh <dh at metrohm.com>
- Date: Wed, 22 Apr 2009 06:43:42 -0400 (EDT)
- References: <gsmmvk$d24$1@smc.vnet.net>
Hi Ruth,
in short syntax, "all parameters are written by: ##. This can not be
done with the long syntax: Function[..]. You have nested functions and
you need the "##" in the outer function. Therefore, you need to write
the inner functions in "long" syntax: Function[{x},..]. here is one
possibility:
purefun = (Function[{x}, Integrate[z*Efun[##], {z, 0, x}]] /@ {1,2,3}) &
Daniel
Ruth Lazcoz Saez wrote:
> Hi,
>
> I have two definitions for a function, one in the case it has one
> argument and another one if it has two.
>
> Efun[x_]:=x^2
> Efun[x_,y_]:=x^2+y^2
>
> Then I want to construct a pure function that does the same thing as
> this non-pure function
>
> myint[params__] := Integrate[z*Efun[params], {z, 0, #}] & /@ {1, 2, 3}
>
> I tried to accomplish it with
>
> myintpure= Function[params, Integrate[z*Efun[params], {z, 0, #}] & /@
> {1, 2, 3}],
>
> but myintpure[x,y] gives not the same as myint[x,y], so this pure
> function I have constructed seems to be not right.
>
> Help will be much appreciated. Thanks,
>
> Ruth Lazkoz
>
>
>