Re: math =!= mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg108659] Re: math =!= mathematica
- From: dh <dh at metrohm.com>
- Date: Fri, 26 Mar 2010 05:37:13 -0500 (EST)
- References: <hoa19m$fdk$1@smc.vnet.net> <4BA9F75F.7020908@metrohm.com> <hofac2$4uv$1@smc.vnet.net>
Hi, if you don't want to use the lower case trick, use fully qualified names. This is include the context in the name. Daniel On 25.03.2010 10:28, Ralf Hemmecke wrote: > Oh, it was exactly what I wanted. Suppose, I write a big Mathematica package > with lots of new names that I export in my context. > Everything works fine for Mathematica up to version 7. Now assume in version 8 > one of my identifiers is suddenly a member of Mathematica's System` context. > > Using Array in my proposed code was just an example of this situation. > You can even suppose that I don't want to export my identifier, i.e. my > Array would only appear in the A`Private` context. > > Of course, I don't want that the internals of my code suddenly break, > because an identifier I use in a private context is exposed from System` > and thus probably protected and not changable. > > What can I do? > > Ralf > > > On 03/24/2010 12:28 PM, dh wrote: >> Hi Ralf, >> if you say: `Array[c,3]=17 you are not calling the function "Array" that >> lives in the System context, but you create a new symbol in the context >> "A". Hardly what you want. >> Daniel >> >> >> On 23.03.2010 10:23, hemmecke wrote: >>> Does somebody know why I get different behaviour for the following >>> commands in a commandline session of mathematica 7 or inside a notebook? >>> It also seems to be different in different Mathematica versions for the >>> notebook format. >>> See http://www.risc.jku.at/people/hemmecke/mathematica/ for the >>> notebook files for Mathematica 5.2, 6.0, 7.0. >>> >>> Can someone explain the >>> >>> General::dupsym: The symbol Array with context A` already exists. >>> >>> message? Why does that message appear at all? If A`Array exists, then >>> Mathematica should just use it, shouldn't it? >>> >>> According to >>> http://reference.wolfram.com/mathematica/tutorial/Contexts.html >>> we have: >>> `name a symbol in the current context >>> So why is Mathematica complaining? >>> >>> Ralf >>> >>>> math >>> Mathematica 7.0 for Linux x86 (32-bit) >>> Copyright 1988-2008 Wolfram Research, Inc. >>> >>> In[1]:= BeginPackage["A`"] >>> >>> Out[1]= A` >>> >>> In[2]:= {$ContextPath, $Context} >>> >>> Out[2]= {{A`, System`}, A`} >>> >>> In[3]:= `Array[c,3]=17 >>> >>> Array::shdw: Symbol Array appears in multiple contexts {A`, System`} >>> ; definitions in context A` may shadow or be shadowed by other >>> definitions. >>> >>> Out[3]= 17 >>> >>> In[4]:= Array[c,3] >>> >>> Out[4]= 17 >>> >>> In[5]:= `Array[c,3] >>> >>> General::dupsym: The symbol Array with context A` already exists. >>> >>> Out[5]= Removed[Array][c, 3] >>> >>> In[6]:= A`Array[c,3] >>> >>> Out[6]= 17 >>> >> >> > -- Daniel Huber Metrohm Ltd. Oberdorfstr. 68 CH-9100 Herisau Tel. +41 71 353 8585, Fax +41 71 353 8907 E-Mail:<mailto:dh at metrohm.com> Internet:<http://www.metrohm.com>