Re: Making new Contexts in Modules in a package
- To: mathgroup at smc.vnet.net
- Subject: [mg48376] Re: Making new Contexts in Modules in a package
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 26 May 2004 02:41:28 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <c8vcv5$alu$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
a) you can't have a function with name Function[] because
Function[] is used by Mathematica for pure functions
b) you should not create contexts for file names because
file names can have . \ of / characters in it and this is
not allowed in a context
c) you must build a symbol in the context you wish with
Evaluate[
ToExpression[
stringWithContextName<>"`unmodifyedlist"
]
]=ReadList[__]
Regards
Jens
Johan van der Meer wrote:
>
> Hello, I am fairly new to mathematica and need some help with this
> context stuff :-).
>
> What I want is to read with a function in a package some data (from a
> file), and put that in a (nested) list called listname`unmodifiedlist.
>
> The idea is to make modifications to that list with other functions,
> where the new list name is listname`modifiedlist.
>
> So what I want is a function called MakeList[data_String], that reads
> the data and puts it in the variable unmodifiedlist in the (newly made)
> context data.
> Then, in my notebook I can simply type:
> MakeList["data"]
> Plot[data`unmodifiedlist]
>
> to plot it for example.
>
> I have in a package (package.m) a function that looks like this:
>
> Function[data_String]:=
> Module[{newcontext="",unmodifiedlist,readlist},
>
> unmodifiedlist=ReadList[OpenRead[data],Number];
> Close[data];
>
> newcontext=ToString[context]<>"`";
> $ContextPath=Join[$ContextPath,{newcontext}];
>
> $Context=newcontext;
>
> unmodifiedlist=readlist;
>
> ]
>
> However, this doesn't seem to work. What I also tried is to change the
> context in the beginning of my module to "data`". I am not sure if this
> is good programming either, or if I should be wanting this with
> mathematica, but any help is greatly appreciated.
>
> Regards,
>
> Johan van der Meer