MathGroup Archive 2002

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

Search the Archive

Work with Contexts

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35731] Work with Contexts
  • From: "Hermann Schmitt" <schmitther at netcologne.de>
  • Date: Sun, 28 Jul 2002 03:32:01 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Hello,
I have the following program:

oo`newContext[ctxp_] := (
    BeginPackage[ctxp[[1]]];
    )
oo`resumeContext[] := (
        EndPackage[];
       $ContextPath = Drop[$ContextPath, 1];
     )
oo`new11[x_] := (
Print["Begin new11"];
klassnam = x;
ctx = klassnam <> "`";
oo`newContext[{ctx}];
);
oo`new12[] := (
Print["Name klasse - Begin"];
 Print["$Context: ", $Context];
 Print["$ContextPath: ", $ContextPath];
 ToExpression["klasse"];
Print["Context of klasse: ", Context[klasse]];
 oo`resumeContext[];
 Print["Name klasse - End"];
 );
  Print["Begin Programm:"];
  Print["$Context: ", $Context];
 Print["$ContextPath: ", $ContextPath];
 oo`new11["Rechteck"];
 oo`new12[];
   Print["after new12:"];
   Print["$Context: ", $Context];
 Print["$ContextPath: ", $ContextPath];

I get the following results:

Begin Programm:
$Context: Global`
$ContextPath: {Global`, System`}
Begin new11
Name klasse - Begin
$Context: Rechteck`
$ContextPath: {Rechteck`, System`}
klasse
klasse::shdw: Symbol klasse appears in multiple contexts {Rechteck`,
Global`}
    ; definitions in context Rechteck`
     may shadow or be shadowed by other definitions.Context of klasse:
Global`
Name klasse - End
after new12:
$Context: Global`
$ContextPath: {Global`, System`}
In[14]:=

My question is:
Why is the variable "klasse" also defined in the context Global?

Hermann Schmitt




  • Prev by Date: Package Puzzlers?
  • Next by Date: Re: Mathematica function writing for data analysis at Gould Academy
  • Previous by thread: RE: Package Puzzlers?
  • Next by thread: Re: Work with Contexts