[erlang-questions] records and types

Torben Hoffmann <>
Mon Oct 17 09:06:25 CEST 2011


I am afraid you need to create a record for every field type.

Then you can write something like:
-type field() :: #text_field{} | #integer_filed{}.
-record(schema, {fields :: [field()]}).

And then you might want to look at Ulf Wiger's exprecs library - it may 
help with this kind of repetitive code.

Cheers,
Torben

On Mon Oct 17 08:59:08 2011, Ward Bekker wrote:
> I have the following (compiling) record and type definitions:
>
> -record( field, {name :: unicode:unicode_binary()}).
> -record( schema,{name :: unicode:unicode_binary(), fields :: [ #field{} ]}).
> -type text_field() :: #field{}.
> -type integer_field() :: #field{}.
>
> The following function will give compile errors:
>
> demo_schema() ->
>      #schema{ name = u("stackoverflow_post"),
> 	     fields = [
> 		       #text_field{ name = u("title") },
> 		       #integer_field{ name = u("user_id") }		
> 		      ]
> 	   }.
>
> Is it possible to create a field record using the type definition name? Or do I need to define a record for every field type?
>
> Regards,
>
> Ward
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list