MathGroup Archive 2010

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

Search the Archive

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
>>
>
>




  • Prev by Date: Re: How to pass additional parameters to the ticks function?
  • Next by Date: Re: Fourier transform of exponential function
  • Previous by thread: Re: math =!= mathematica
  • Next by thread: An open note for all the Mathematica