MathGroup Archive 2002

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

Search the Archive

Re: Work with Contexts

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35758] Re: Work with Contexts
  • From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
  • Date: Tue, 30 Jul 2002 07:22:04 -0400 (EDT)
  • Organization: Universitaet Leipzig
  • References: <ai06l0$19t$1@smc.vnet.net>
  • Reply-to: kuska at informatik.uni-leipzig.de
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

the variable klasse becomes defined when you give the
definition for oo`new21[]
Just try it out and evaluate only the oo`* defintions

and Names["Global`*"] will list

{"ctx", "ctxp", "klasse", "klassnam"}

The problem is, that you use

Print["Context of klasse: ", Context[klasse]];

in your definition and this will create the
klasse symbol when oo`new21[] is defined.

Regards
  Jens


Hermann Schmitt wrote:
> 
> 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: Re: Removing the Context
  • Next by Date: Re: Re: Question about Replace
  • Previous by thread: Re: Re: Work with Contexts
  • Next by thread: Followup on Graphics3D rendering problem