MathGroup Archive 2006

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

Search the Archive

Re: Block v. Module

  • To: mathgroup at smc.vnet.net
  • Subject: [mg68195] Re: Block v. Module
  • From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
  • Date: Sat, 29 Jul 2006 01:00:10 -0400 (EDT)
  • Organization: Uni Leipzig
  • References: <eaa23s$nde$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

Block[{x}, ..]

will copy the value of the *global* variable x on 
the stack, save it,
use it insed the Block[] and restore the value 
when Mathematica leaves the
Block[] so x has no value in
Block[{x},...]

and so

StringReplace[Y,{x_->x}]

will do nothing
while
f1[Y_String] := Block[{x = "foo"}, x = 
StringReplace[Y, {x_ -> x}]];
x = {"yes", "no"};

f1 @ "xyz"

return foofoofoo

as it should.

Module[{x},...]

will create (every time it is called) a variable 
x$1, x$2, ...

but the *not* for the right hand side of

x_-> x

this has nothing to do with Block[] or Module[]

this has to do with the fact that Block[]/Module[]

*and* Rule[]/RuleDelayed[] are scoping constructs 
and

you should read

"A.3.8 Scoping Constructs" of the manual.

Regards

  Jens


"Bruce Colletti" <vze269bv at verizon.net> schrieb im 
Newsbeitrag news:eaa23s$nde$1 at smc.vnet.net...
| Re Mathematica 5.2.0.0.
|
| The Module and Block below "should" return the 
same result, but they don't.  The Module's result 
makes no sense, while the Block's result is what I 
want.
|
| What's Module doing?  The way I read the Help 
Text, both should return the same result.
|
| Thankx.
|
| Bruce
|
| 
f[Y_String]:=Module[{x},x=StringReplace[Y,{x_->x}]];
| x={"yes","no"};
| f@"xyz"
|
| {yes,no}~~{yes,no}~~{yes,no}
|
|
| 
f[Y_String]:=Block[{x},x=StringReplace[Y,{x_->x}]];
| x={"yes","no"};
| f@"xyz"
|
| Out[3]=
| xyz
| 



  • Prev by Date: RE: mathematica emacs syntax highlighting
  • Next by Date: Re: Table to find lower and upper estimate
  • Previous by thread: Re: Block v. Module
  • Next by thread: mathematica emacs syntax highlighting