Re: On ~= (simulating a C structure) in Mathematica....
- To: mathgroup at smc.vnet.net
- Subject: [mg103957] Re: [mg103922] On ~= (simulating a C structure) in Mathematica....
- From: Jason Ledbetter <jasonbrent at gmail.com>
- Date: Tue, 13 Oct 2009 23:21:30 -0400 (EDT)
- References: <200910131117.HAA29190@smc.vnet.net>
This works as expected (when my expectations are modified slightly) as is. test[foo] ends up with DownValues[foo] set as I hoped... not sure why I was expecting the lhs to get set. Thanks to Mr. Lichtblau @ Wolfram for pointing out this error in expectations. -jbl On Tue, Oct 13, 2009 at 7:17 AM, Jason Ledbetter <jasonbrent at gmail.com>wrote: > Folk, > I'm importing data into mathematica from a web service using some perl > middleware (the lack of XPath functionality in mathematica coupled with my > very junior comprehension of mathematica patterns forced this for now). > > The perl middleware returns datasets by "layers" that I'm (somewhat > successfully) manipulating within mathematica. > > For each dataset, I end up with a few large pieces of data that are roughly > analogous to "layers". > > Right now, I am mentally keeping track of the variable names for each layer > but I would like to expand this to be more programatic so I can work with > comparisons between datasets (which would each contain a number of > "layers"). > > Initially I was just naming variables like... > > datasetId=3728; > layer1ImportString = "!importprogram..."<> ToString[datasetId]"; > layer1=Import[layer1ImportString....]; > .... > > This would let me have a single identifiable dataset with named layers. > > I've been pondering abusing DownValues to store this data at a known-to-me > "index". > > e.g., > > dataset1[0]=3278; > dataset1[1]=Import[layer1ImportString...]; > > I believe this approach will work, but what I'm trying to do now is > encapsulate all of the initial dataset/layer importing into one function > which leads to my question. > > How can I do: > > dataset1=importById[3728]; > > and get dataset1[0], dataset1[1], etc populated? > > For example: > > In[262]:= test[data_] := Module[{}, {data[0] = "zero", data[1] = "one"}]; > bar = test[foo]; > DownValues[bar] > > Out[262]= {} > > > I'm expecting... {HoldPattern[bar[0]]:> zero...} > > > Thoughts? I realize I'm probably doing this The Hard Way and welcome other > alternatives... my end goal is to be able to have a single variable that > describes the entire dataset/individually-imported-layers that can be > passed > to other functions so I can more readily work with multiple datasets > concurrently. > > > Thanks, > > > -jbl > > >
- References:
- On ~= (simulating a C structure) in Mathematica....
- From: Jason Ledbetter <jasonbrent@gmail.com>
- On ~= (simulating a C structure) in Mathematica....