Re: math =!= mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg108666] Re: math =!= mathematica
- From: "David Park" <djmpark at comcast.net>
- Date: Fri, 26 Mar 2010 05:38:30 -0500 (EST)
Perhaps don't start `Private` names with a capital letter? It wouldn't be that much work to change any over. David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Ralf Hemmecke [mailto:hemmecke at gmail.com] 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 >> > >