Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Context Problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109443] Re: Context Problem
  • From: Rui <rui.rojo at gmail.com>
  • Date: Tue, 27 Apr 2010 07:40:55 -0400 (EDT)
  • References: <hr3k5q$c44$1@smc.vnet.net>

On Apr 26, 5:51 am, "David Park" <djmp... at comcast.net> wrote:
> I would like to export rules from a package in such a way that the pattern
> symbols did not include any contexts and in which I also did not have to
> export the symbols used in the pattern. In addition, If possible, I would
> like this to work even if the package was loaded from a notebook that had
> something other than the Global` context.
>
> Here is a sample package and exported rule:
>
> BeginPackage["PackageContext`"];  
>
> Rule1::usage = "Rule1 is a test exported rule.";  
>
> Begin["`Private`"];
>
> Rule1 = Cos[x_]^2 + Sin[x_]^2 -> 1;
>
> End[];  
>
> EndPackage[];
>
> Then, if we evaluate Rule1 we obtain a very clumsy version of the rule,
> although I suppose it will work.
>
> Rule1
>
> Cos[PackageContext`Private`x_]^2 + Sin[PackageContext`Private`x_]^2 -> 1
>
> What I would like is the rule as written in the package. Is there a way to
> do this?
>
> David Park
>
> djmp... at comcast.net
>
>  <http://home.comcast.net/~djmpark>http://home.comcast.net/~djmpark/ 

I'd try something like:
 BeginPackage["PackageContext`"];

Rule1::usage = "Rule1 is a test exported rule.";

 Begin["`Private`"];

Rule1 := (Cos[x_]^2 + Sin[x_]^2 -> 1)/.x->Unique["x"];

End[];

EndPackage[];

so you get something like

Rule1
Cos[x1_]^2 + Sin[x1_]^2 ->  1

cause the symbol is created only when the Rule1 is evaluated


  • Prev by Date: Re: how uncouple dynamic objects?
  • Next by Date: Re: Precision of calculations
  • Previous by thread: Re: Context Problem
  • Next by thread: Re: Context Problem