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