MathGroup Archive 2009

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

Search the Archive

Wrapping Begin["Context`"], ..., End[] into a function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg106046] Wrapping Begin["Context`"], ..., End[] into a function
  • From: Leo Alekseyev <dnquark at gmail.com>
  • Date: Thu, 31 Dec 2009 03:15:46 -0500 (EST)

Dear Mathgroup,

I was wondering if it's possible to write a function that evaluates an
expression in a particular context.  In other words, instead of
writing this:

cpsave = $ContextPath;
Begin["Materials1`"];
$ContextPath = {"Materials1`", "System`"};
myExpression;
End[];
$ContextPath = Global`cpsave;

I would like to be able to make a function call, e.g.
evaluateInContext["Materials1`",myExpression]

The naive solution of
 evaluateInContext[cont_,expr_]:=(
cpsave = $ContextPath;
Begin[cont];
...
)

doesn't work because any symbol in parentheses is bound to the current
context before any evaluation takes place.  Is there a trick to make
this work?

Thanks, and happy New Year to all!

--Leo


  • Prev by Date: Re: simplifying a system of equations
  • Next by Date: Re: More /.{I->-1} craziness
  • Previous by thread: List to Expression
  • Next by thread: Re: More /.{I->-1} craziness