MathGroup Archive 2010

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

Search the Archive

Re: math =!= mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108595] Re: math =!= mathematica
  • From: dh <dh at metrohm.com>
  • Date: Thu, 25 Mar 2010 04:22:10 -0500 (EST)
  • References: <hoa19m$fdk$1@smc.vnet.net> <4BA9F75F.7020908@metrohm.com> <4BAA0104.5020904@gmail.com>

Hi Ralf,
in Mathematica it is usage that user identifier should always start with a lower 
case letter. System names always start with a capital. This prevents any 
conflicts.
A further mean is the usage of BeginPackage, Begin, End, EndPackage, but 
I think you know about this.

Daniel

On 24.03.2010 13:09, 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 AG
International Headquarters
Oberdorfstr. 68, CH-9101 Herisau / Switzerland
Phone +41 71 353 8606, Fax +41 71 353 89 01
Mail <mailto:dh at metrohm.com>
Web <http://www.metrohm.com




  • Prev by Date: Re: Mathematica front-end very sluggish under Linux
  • Next by Date: Re: math =!= mathematica
  • Previous by thread: Re: math =!= mathematica
  • Next by thread: Re: math =!= mathematica