Re: Share symbols among packages
- To: mathgroup at smc.vnet.net
- Subject: [mg97383] Re: Share symbols among packages
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 12 Mar 2009 02:18:50 -0500 (EST)
- Organization: Uni Leipzig
- References: <gp82if$2l4$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi, if you don't give a context, Mathematica assume that it is the current context. You must specify the context explicit with MyPack1`myVar and clearly MyPack2 must not define also myVar. Regards Jens Andrey wrote: > Hello group, > > How to use Global symbols in several user packages? > > That is, I have: > > BeginPackage["MyPack1`"] > > myVar::usage="My var"; > > myFun1::usage="My fun1"; > > Begin["`Private`"]; > ... > (* use myVar *) > ... > End[] > EndPackage[] > > BeginPackage["MyPack2`"] > > myVar::usage="My var"; > > myFun2::usage="My fun2"; > > Begin["`Private`"]; > ... > (* use myVar *) > ... > End[] > EndPackage[] > > And then I would like to do like this: > > myVar=data; myFun1[a,b,c] > myVar=data; myFun2[a,b,c] > > The problem is: > > myVar::shdw: "Symbol myVar appears in multiple contexts \!\({\"MyPack1` > \", \"MyPack2`\"}\); definitions in context \!\(\"MyPack2`\"\) may > shadow or be shadowed by other definitions." > > Any ideas? > > > Regards, > > -Andrey >