MathGroup Archive 2006

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

Search the Archive

Nested Packages and scoping

  • To: mathgroup at smc.vnet.net
  • Subject: [mg63785] Nested Packages and scoping
  • From: Detlef Müller <dmueller at mathematik.uni-kassel.de>
  • Date: Sat, 14 Jan 2006 02:32:32 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hello,

I wrote two Packages, the one, say "A" containing Basics,
and one, say "B" containing higher Functions, using those
of "A".

Now the User should type

  Needs["B`"]

and have all the Functions of A and B.
I figured out, that for this following looks
awkward, but seems the only way:

---------------------

File A.m

BeginPackage["A`"];
f::usage="f is 7";
Begin["`Private`"];
f:=7;
End[]
EndPackage[]

---------------------

File B3.m:

Needs["A`"];  (* without this, f not known in calling context *)

BeginPackage["B3`"];

Needs["A`"]; (* without this, f not known in this context *)
Print[f];
EndPackage[]

----------------------

But then I had to nest it one Step further. And now a
problem occures:

If I have a package X.m with

g::usage = "g is 5";
BeginPackage["X`"];
g := 5;
EndPackage[]

And A.m is switched to

-------------------------

Needs["X`"];
BeginPackage["A`"];
Needs["X`"];
f::usage = "f is 7";
Begin["`Private`"];
f := 7;
End[]
EndPackage[]

-------------------------

The following happens:

Needs["B3`"]

(g::"shdw"\),Symbol g appears in multiple contexts (X`,Global`)
definitions in context (X`) may shadow or be shadowed by other \
definitions. mehr...

{f, g}
{7, g}

Is there a Way to achieve, that the Symbols of all used
Packages are inherited?

(Version is Mathematica 5.1)

Greetings,
   Detlef


  • Prev by Date: Re: Question about UpSet vs SetDelayed
  • Next by Date: Re: Practical time limits with Solve[] and similar functions
  • Previous by thread: Second announcement of the International Mathematica Symposium 2006
  • Next by thread: Re: Nested Packages and scoping