MathGroup Archive 2005

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

Search the Archive

The right context to declare a symbol

  • To: mathgroup at smc.vnet.net
  • Subject: [mg63001] The right context to declare a symbol
  • From: "Trevor Baca" <trevorbaca at gmail.com>
  • Date: Sat, 10 Dec 2005 06:03:18 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

I'm interested in creating two different "objects", which we'll call
obj1 and obj2.

So I create two separate .m packages callled obj1.m and obj2.m.

Then let's say that for each object I want to define a getLength
function (accessor) so that I can say both

  getLength[p]

and

  getLength[q]

where p is an obj1 and q is an obj2.

The problem is that if both obj1.m and obj2.m declare a getLength
expression, then doing

<< obj1`

works, but then adding

<< obj2`

causes shadowing objections since, of course, the expression getLength
now lives in two contexts.

So what's the right way to declare a simple expression (like getLength,
getName, getColor, etc) that operates on multiple different classes of
object defined in different packages?

It would, of course, work to declare getLength, etc, in, say, the
System` or Global` context and NOT in any other context ... but that
just seems odd. Shouldn't expressions related to a package live in the
package?

Trevor.


  • Prev by Date: Re: Re: Re: Roman Maeder's Classes.m
  • Next by Date: functional programming
  • Previous by thread: Re: A more syntactically compact way?
  • Next by thread: Re: The right context to declare a symbol