record field names
Ulf Wiger (AL/EAB)
ulf.wiger@REDACTED
Fri Sep 16 16:33:18 CEST 2005
In order to eliminate name clashes, why not
Module:module_info({record, Rec, fields})
/Uffe
> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]On Behalf Of Mats Cronqvist
> Sent: den 16 september 2005 16:22
> To: erlang-questions@REDACTED
> Subject: record field names
>
>
> feels like this is an faq, but i can't find it in the archive.
>
> according to the reference manual:
> "To each module using records, a pseudo function is added
> during compilation
> to obtain information about records:
> record_info(fields, Record) -> [Field]
> record_info(size, Record) -> Size"
>
> now, as i understand it, there is no function, just
> textual substitution
> (like a macro).
>
> but why not? if there was a real, exported function
> record_info/2 (just like
> module_info), one could do a lot of cool things.
>
> such as turning a record into a tagged tuple;
>
> readable_rec(Module,Rec) ->
>
> lists:zip(Module:record_info(fields,element(1,Rec)),tl(tuple_t
> o_list(Rec))).
>
> or write a tool to check that all modules using a certain
> record agree on its
> definition.
>
> mats
>
More information about the erlang-questions
mailing list