DMUG-Archiv 2008

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: scoping Rule[]

Hi Jens,

In jeder "normalen" Progsprache benennt man die lokalen Paramter schlicht und einfach anders als eine eventuelle spezielle globale Variable auf die man zugreifen will und vermeidet ganz einfach die Mehrdeutigkeit.

Ich bestreite ja generell nicht den allgemeinen Nutzen beider Konstrukte Block[] und Module[], habe aber im Falle der Rule[] meine zweifel ob MMA hier wirklich "schlau" und korrekt agiert.

l.g. Robert

Jens-Peer Kuska schrieb:


schiesslich stand im Original Module[{x, y}, {a, b} /. {x_, y_} -> {y, x}]
ist also das umbenannte "x" aus dem Module[] gemeint also
 Block[{x$1,y$2}, {a,b} /. {x$1_,y$1_}-> {y$2,x$1}]
oder aber das Globale x
  Block[{x$1,y$2}, {a,b} /. {x$1_,y$1_}-> {y,x}]

Die sind beide gleich gut und um die Mehrdeutigkeit  aufzuloesen hat man

Block[{x$1,y$2}, {a,b} /. {x$1_,y$1_}-> {y,x}]

genommen. Da gibt es nix zu erklaeren, das ist so (!), genauso wir Sqrt[4] eine 2 ergibt und keine -2.



--
Robert Nowak
IMS Nanofabrication AG
Phone: +43/12144894/32
Fax: +43/12144894/99


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html