       Summary: renaming in Function[] and Module[]

• To: mathgroup at christensen.cybernetics.net
• Subject: [mg592] Summary: renaming in Function[] and Module[]
• From: Xah Y Lee <xyl10060 at fhda.edu>
• Date: Thu, 23 Mar 1995 01:28:41 -0800 (PST)

```In reply to Paul E Howland's message "[mg523] Confused about
contexts...", Robby Villegas explained in message "[mg570] ..." on the
issue of renaming by Function and Module. It was GREAT. Thanks Robby. I
myself run into this exact problem 2 weeks ago.

The way I solved the problem is by using   Function[ z/. x-># ].
Here is a summary.

Problem:
we expect the definition
test[a_] := Module[{z}, z=Sin[x/a]; Function[x,z]]
to behave like this
test[m] should return Function[x,Sin[x/a]], but instead it returns
Function[x\$, z\$10]. What to do?

Solutions:

test1[a_] := Module[{z}, z = Sin[x/a]; Function @@ {x, z}]
test2[a_] := Module[{z}, z = Sin[x/a]; Function[ z/. x->#] ]
test3[a_] := Module[{z}, z=Sin[x/a]; (Function[Evaluate@z]/.x->#) ]

the following wouldn't work:

test4[a_] := Module[{z}, z=Sin[x/a]; Function[x,z]]
test5[a_] := Module[{z}, z=Sin[x/a]; Function[x,Evaluate@z]]
test6[a_] := Module[{z}, z=Sin[x/a]; Evaluate@Function[x, z] ]
test7[a_] := Module[{z}, z=Sin[x/a]; (Function[z]/.x->#) ]
test8[a_] := Module[{z}, z=Sin[x/a]; Evaluate@(Function[z]/.x->#) ]

Xah Lee      a Stud at some higher learning place.
Quote of the day:
Soap opera makes some people shed tears, onion cause others.
Some shed tears because of war, some for joy.
I shed tears for nothing but Mathematica.   --Hearty Mathematician

```

• Prev by Date: Re: Re (-1)^(3/4) -> (-1+I)/Sqrt ?
• Next by Date: A Fancy Animation
• Previous by thread: Re: Re (-1)^(3/4) -> (-1+I)/Sqrt ?
• Next by thread: A Fancy Animation