Re: Mathematica Problem
- To: mathgroup at smc.vnet.net
- Subject: [mg42099] Re: Mathematica Problem
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Thu, 19 Jun 2003 03:59:07 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <bcp0ve$7t1$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
in your package the symbols a and b in
Thread[{a,b}->{1,2}]
are in the context MathIA`Test`Private`,
when myTest[] is called ToExpression["a!=b"] evaluates
in the global context and the symbols a and b are
not identical with a and b from the MathIA`Test`Private`a, and
MathIA`Test`Private`b .
To fix it you have to write
BeginPackage["MathIA`Test`"]
myTest::usage = " getRandomSet [ ] This is test package ";
Begin["`Private`"]
myTest[] :=
Module[{temp2},
temp2 = ToExpression["MathIA`Test`Private`a!=MathIA`Test`Private`b
"] /.
Thread[{a, b} -> {1, 2}];
Print[temp2];
]
End[]
EndPackage[]
Regards
Jens
Jai Bharat Patel wrote:
>
> Hi,
>
> Following statement is working when use it directly in
> Mathematica:
>
> In[1]:= ToExpression["a!=b"] /. Thread[{a,b}->{1,2}]
>
> Out[1]=True
>
> But same statement is not working if I use it from a
> package:
>
> Package:
>
> BeginPackage["MathIA`Test`"]
>
> myTest::usage =
> " getRandomSet [ ] This is test package ";
>
> Begin["`Private`"]
> myTest[ ] :=
> Module[ { temp2 },
> temp2 = ToExpression["a!=b"]) /.
> Thread[{a,b}->{1,2}] ;
> Print[temp2];
> ]
>
> End[]
>
> EndPackage[]
>
> output:
>
> In[3]:= <<MathIA`Test`
>
> In[4]:= myTest[]
> a != b
>
> Please let me know where is my mistake.
>
> TIA
>
> __________________________________
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!
> http://sbc.yahoo.com