MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Module Behavior

  • To: mathgroup at smc.vnet.net
  • Subject: [mg84683] Re: Module Behavior
  • From: "Mariano Suárez-Alvarez" <mariano.suarezalvarez at gmail.com>
  • Date: Wed, 9 Jan 2008 03:51:57 -0500 (EST)
  • References: <flvcpr$49b$1@smc.vnet.net> <flvo12$7hm$1@smc.vnet.net>

On Jan 8, 9:49 am, Jens-Peer Kuska <ku... at informatik.uni-leipzig.de>
wrote:
> Hi,
>
> no, because the b$* are only removed when no expression
> in your session include the local generated variables
> If you change your Module to
>
> Module[{a, b}, b[1] = 1; a = b[1];]
>
> everything is fine, but with your definition
> a is not evaluated again and so it will hold
> a reference to the local defined variable b.
> If you like you can resolve this by
>
> Module[{a, b}, a = b; b = 1; Evaluate[a]]
>
> and you will see that the global $b* are gone ..

Hmm. The original example was:

  Module[{a, b}, a = b[1]; b[1] = 1;]
  {Names["a$*"], Names["b$*"]}

What's holding a reference to b$* here?

On the other hand,

  Module[{a, b}, a = b[1]; b[1] = 1; Evaluate[a]]
  {Names["a$*"], Names["b$*"]}

behaves exactly as in the previous example.

-- m


  • Prev by Date: How to ParametricPlot3D a plane given Normal and Distance
  • Next by Date: BarChart Question
  • Previous by thread: Re: Re: Module Behavior
  • Next by thread: Mathematica 6.0.1: problems with Beta Negative Binomial Distribution