Re: Map-like behaviour for functions of more than a single argument?
- To: mathgroup at smc.vnet.net
- Subject: [mg64528] Re: [mg64519] Map-like behaviour for functions of more than a single argument?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 20 Feb 2006 22:31:02 -0500 (EST)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
Your function f can be written in shorter form.
Clear[f,g];
f[z_,func_]:=Module[{result},
result=func[Complex[Sequence@@z]];
{Re[result],Im[result]}];
f2[z_,func_]:=Module[
{result=func[Complex@@z]},
{Re[result],Im[result]}];
f3[z_,func_]:=
{Re[#],Im[#]}&[func[Complex@@z]];
g[z_]:=f[z,#^2&];
data={{x1,y1},{x2,y2},{x3,y3},{x4,y4}};
s1=g/@data;
s2=f[#,#^2&]&/@data;
s3=f2[#,#^2&]&/@data;
s4=f3[#,#^2&]&/@data;
s1==s2==s3==s4
True
data=Table[{Random[],Random[]},{4}];
s1=g/@data;
s2=f[#,#^2&]&/@data;
s3=f2[#,#^2&]&/@data;
s4=f3[#,#^2&]&/@data;
s1==s2==s3==s4
True
Bob Hanlon
>
> From: "Matt" <anonmous69 at netscape.net>
To: mathgroup at smc.vnet.net
> Subject: [mg64528] [mg64519] Map-like behaviour for functions of more than a single
argument?
>
> Hello,
> I was wondering if there's a way to achieve the functionality of Map,
> but with functions of more than one argument?
>
> An example of how I'm 'working around' my perceived limitation of Map
> functionality:
>
> Clear[f, g];
> f[z_, func_] := Module[{result}, result = func[Complex[Sequence @@ z]];
>
> {Re[result], Im[result]}];
> g[z_] := f[z, #1^2 & ];
>
>
> Which, using 'g', I can use Map on a list of ordered pairs:
>
>
> g /@ {{x,y}, {x,y}, {x,y}, {x,y}, etc.}
>
>
> If I wanted to use Sin, I would redefine g as follows:
>
>
> g[z_] := f[z, Sin];
>
>
> then reapply to the list of ordered pairs. So, I'm wondering if
> there's a way to accomplish my task without the intermediary function
> definition 'g'? Also, if what I'm attempting is totally wrong, I'd
> appreciate any pointers as to the correct 'path' as well.
>
>
> Thanks,
>
> Matt
>
>