RE: data structures
- To: mathgroup at smc.vnet.net
- Subject: [mg22703] RE: [mg22662] data structures
- From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
- Date: Wed, 22 Mar 2000 00:28:09 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Maarten van der Burgt Leuven wrote: Is there an elegant way of setting up data structures like you can do in languages like C? Something like the following example (what follows is a mixture between mathematica code and C) explains what I am looking for: Table[ person[i], {i,1,10}] person[1].name = "Jeff" person[1].length = 180 person[1].address.street = "Church Road" person[1].address.city = "London" person[1].favourite_colours[1]= "green" person[1].favourite_colours[2]= "pruple" person[2].name = "Jane" person[2].length = 175 person[2].address.street = "Farm Road" ... person[10].... Then you can do things like: Do[Print[ person[i].street ], {i,1,10}], or totallength = Apply[Plus, Table[ person[i].length, {i,1,10}]]. I know you could do something similar with nested lists. But I do not want to remember that index 1 corresponds to 'name', index 2 corresponds to 'length' and that index 3,2 is 'city' and so on. ----------------------------------------------- My approach is to give person multiple arguments as in: person[1, name] = "Jeff" person[1, length] = 180 person[1, address, street] = "Church Road" person[1, address, city] = "London" person[1, favourite, colours, 1] = "green" person[1, favourite, colours, 2] = "pruple" person[2, name] = "Jane" person[2, length] = 175 person[2, address, street] = "Farm Road" ... --------------------------------- However name, address, street, length, etc. may have assigned values, so you may want to use strings instead. In that case you would have: person[1, "address", "street"] = "Church Road" Another approach is to use nested heads as in: person[1][address][street] = "Church Road" or person[1]["address"]["street"] = "Church Road" I don't see that there is any advantage in telling Mathematica you have 10 persons. -------------------- Regards, Ted Ersek See Mathematica tips, tricks at http://www.verbeia.com/mathematica/tips/Tricks.html