[erlang-questions] Are recursive record definitions allowed?

Maria Christakis <>
Wed Jul 28 09:36:04 CEST 2010


On 07/27/2010 10:28 PM, Brian Williams wrote:
> I'm working on some algorithm analysis and am trying to define a
> fairly simple binary search tree with a record definition:
> -record(btreenode, {left = #btreenode{}, right = #btreenode{}, value}).
> I get:
> record btreenode undefined
>
> Should I just not bother to specify the type of left and right and
> just enforce the record type in code?
>
>    
If, as you say, you are just trying "to specify the type of left and right"
and not assign an initial (default) value, then you should write your
record definition as follows:

-record(btreenode, {left :: #btreenode{}, right :: #btreenode{}, value}).


More information about the erlang-questions mailing list