Re: structs/records in mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg41797] Re: structs/records in mathematica
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 6 Jun 2003 09:50:30 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <bbmu1h$iq$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, there is no "standard way" but you may do something like: MyData[id_,value_,compound_] and define the functions IdNumber[m_MyData]:=m[[1]] Value[m_Mydata]:=m[[2]] Compound[m_MyData]:=m[[3]] Regards Jens Sidney Cadot wrote: > > Hi All, > > Currently I am involved in a project to read satellite data files into > languages such as IDL and others. We're also considering implementing > a Mathematica interface. > > For this application, we need the ability to represent classical > records/structs (as found in imperative languages such as C/Pascal), > having named fields with an associated value. > > Since such a type is not directly supported in Mathematica, we'd like > to know if there is a 'standard' way of handling this type of > situation. > > We're currently thinking of using a list of rules, e.g. > > data = { > id->"this_or_that", > value->17.3, > compound->{id->"compound_id", value->18.4} > } > > but this makes selecting a value a bit awkward: > > value/.(compound/.data) > > since this is syntactically the reverse of what one would expect in a > language like C/Pascal (data.compound.value), and the /. operator is > left-associative (therefore requiring parentheses in case of nested > structs). > > Is there perhaps a better way/standard idiom for handling situations > like this? > > Best regards, > Sidney Cadot > Science and Technology Corp., The Netherlands