Re: pattern matching with repeated named patterns
- To: mathgroup at smc.vnet.net
- Subject: [mg39916] Re: [mg39808] pattern matching with repeated named patterns
- From: Omega Consulting <info at omegaconsultinggroup.com>
- Date: Tue, 11 Mar 2003 02:38:48 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
At 02:42 AM 3/7/2003, Gara Kuta wrote:
>Hi
>I have a list of data records which are all of the same type, for
>example person:{name_Sting, sex:M|F, age_Integer, weight_?((1<#<500)&)}.
>I want to access the different fields so I have given them names in the
>pattern. I have a list of these records and I want to use pattern
>matching to test the the whole list such as
>{person:{name_Sting, sex:M|F, age_Integer, weight_?((1<#<500)&)}...}
>but once you name the parts of the pattern, they have to be the same for
>every record. I could leave the names out and use a pattern like
>{{_Sting, M|F, _Integer, _?((1<#<500)&)}...}
>which matches different records with the same structure but then I can't
>access the field values by name. Is there any way I can do both at once?
>Thanks
>G
How about something like this?
f[people:{{_Sting, M|F, _Integer, _?((1<#<500)&)}...}]:=
Module[{name, sex, age, weight},
{name, sex, age, weight} = Transpose[people];
...
]
--------------------------------------------------------------
Omega Consulting
"The final answer to your Mathematica needs"
http://omegaconsultinggroup.com