Re: Why is y a local variable here?

• To: mathgroup at smc.vnet.net
• Subject: [mg63125] Re: Why is y a local variable here?
• From: "Steven T. Hatton" <hattons at globalsymmetry.com>
• Date: Thu, 15 Dec 2005 03:06:34 -0500 (EST)
• References: <200512130841.DAA08255@smc.vnet.net> <dnopmf\$2j5\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```ggroup at sarj.ca wrote:

> On Tuesday, December 13, 2005 at 03:41 GMT -0500, Steven T. Hatton wrote:
> <snip>
>> I do not understand why y is not "contaminated" by the global value when
>> it appears in sd[y_] = SDP[n - 1, y];. Can someone explain this?
>
> Don't you need to use SetDelayed instead of Set?  In other words,
> doesn't the syntax for a function definition need to be something
> like: sd[y_]:=SDP[x-1, y]; or sd=Function[y, SDP[x-1,y]; ?

No.  The idea is to stack recursive calls to SDP, and assign the result of
popping the stack to sd[y_] which is then used in the subsequent
Expand[sd[x + srp] sd[x - srp]].  Evaluating the following should show what
happens in terms of recursion:

Clear[SDP, x, y]
SDP[0, x_] := x
SDP[n_Integer?Positive, x_] :=
Module[
{sd, srp = Sqrt[Prime[n]], py},
Print["Push >>>>>>>>>>>>"];
Information[sd];
sd[y_] = SDP[n - 1, y];
Print["Pop <<<<<<<<<<<<<"];
Information[sd];
Expand[sd[x + srp] sd[x - srp]]
]

SDP[5, x]

--
The Mathematica Wiki: http://www.mathematica-users.org/
Math for Comp Sci http://www.ifi.unizh.ch/math/bmwcs/master.html
Math for the WWW: http://www.w3.org/Math/

```

• Prev by Date: Re: Evaluate[] not needed in With[]
• Next by Date: Re: Parametric Numerical Integral
• Previous by thread: Re: Why is y a local variable here?
• Next by thread: Re: Why is y a local variable here?