MathGroup Archive 2006

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

Search the Archive

Context headache

  • To: mathgroup at smc.vnet.net
  • Subject: [mg70907] Context headache
  • From: "Xerxes" <Xerxes314 at gmail.com>
  • Date: Wed, 1 Nov 2006 03:55:48 -0500 (EST)

Hi all,

I'm trying to write a Mathematica analysis package in which
various data sets are distinguished by being placed in their
own contexts, say data1`data, data2`data, etc. This is helpful
in that you can always hop into a context to work with each
data set individually. Of course, at some point, that method
becomes too much of a chore and you want to automate things.
I'm trying to make a function that iterates over several contexts;
it will hop into the context, execute a function on the data in
that context, save the result as another variable in that context
and then hop back out.

But as described in
http://groups.google.com/group/comp.soft-sys.math.mathematica/msg/7368d0cd14aa8960
(thread aptly named "Nailing jelly to a tree"), you can't do this.
As soon as you try evaluating the iterating function, all the
variables inside it get poisoned with the Global` context. You
might try fixing this by using more nails on the jelly, say
a hideous construct like

Evaluate[Symbol[$Context<>"result"]] =
  analyze[Evaluate[Symbol[$Context<>"data"]]];

but since my actual functions are much more complicated than
this simple example, any readability of the code goes right away.

Is there any better workaround known that would allow
iteration over multiple contexts?

Or alternatively, since it seems like I'm trying to force contexts
to do something they don't want to do, is there some better
data encapsulation technique I haven't thought of yet?

Thanks,
Xerxes


  • Prev by Date: Re: surface plot of an image
  • Next by Date: Re: Matching with a "Flat" function
  • Previous by thread: Re: Two small problems compute OK, but not their sum.
  • Next by thread: Re: Context headache