|
[Date Index]
[Thread Index]
[Author Index]
RE: Re: Defining a function in module problem?
- To: mathgroup at smc.vnet.net
- Subject: [mg46019] RE: [mg46007] Re: Defining a function in module problem?
- From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
- Date: Tue, 3 Feb 2004 03:20:49 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
>-----Original Message-----
>From: phbrf at t-online.de [mailto:phbrf at t-online.de]
To: mathgroup at smc.vnet.net
>Sent: Monday, February 02, 2004 11:21 AM
>To: mathgroup at smc.vnet.net
>Subject: [mg46019] [mg46007] Re: Defining a function in module problem?
>
>
>jose flanigan <jflanigan at netzero.net> wrote:
>
>> a[x_] := Module[{f, g}, g = z/3; f = Function[z, Evaluate[g]]; f[x]]
>
>you could use
>
>a[x_] := Module[{f, g}, g[z_] = z/3; f = Function[z,
>Evaluate[g]]; f[x]]
>
>or even more simple:
>
>a[x_] := Module[{f}, f = Function[z, Evaluate[z/3]]; f[x]]
>
>--
>Gruß Peter
>--
>==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
>Peter Breitfeld, Bad Saulgau, Germany -- <http://www.pBreitfeld.de>
>
Peter,
your first example doesn't work, as g has no DownValue.
Perhaps you meant:
Clear[z]
a[x_] := Module[{f, g}, g[z_] = z/3; f = Function[z, Evaluate[g[z]]];
Scan[Information, Hold[f, g]];
f[x] // Trace]
a[1]
effectively this is the same as your second proposal:
a[x_] := Module[{f}, f = Function[z, Evaluate[z/3]]; Information[f];
f[x] // Trace]
a[1]
Both break, if z has a global value.
The second case should be replaced by
a[x_] := Module[{f}, f = Function[z, z/3]; f[x]]
but is completely trivial then. The first case by
a[x_] := Module[{f, g}, g[z_] := z/3; f = Function[z, Evaluate[g[z]]];
f[x]]
This method now opens the body to the renaming mechanism for z (see my reply
to this post). Now, when renaming z -> z$ occurs for the definition of f,
then z is visible to the renaming mechanism:
Function[z, Evaluate[g[z]]] -->
Function[z$, Evaluate[g[z$]] -->
Function[z$, z$/3]
In fact this might be considered as a nice trick to succeed not knowing
whteher renaming will occur or not.
My recomendation however was different (use Block).
--
Hartmut
Prev by Date:
Re: Simplifying a second order eq. system
Next by Date:
Re: Re: Graphics into MS Word
Previous by thread:
Re: Defining a function in module problem?
Next by thread:
RE: Defining a function in module problem?
|