MathGroup Archive 2010

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

Search the Archive

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>



  • Prev by Date: Re: How to pass additional parameters to the ticks function?
  • Next by Date: Re: How to pass additional parameters to the ticks function?
  • Previous by thread: Re: math =!= mathematica
  • Next by thread: Re: math =!= mathematica