Erlang Nested Records

DANIESC SCHUTTE <>
Wed Mar 19 05:31:09 CET 2003


Morning to everyone,

I have got a question about adressing nested records - is there a standard rule of thumb :) that can be used.

given the following record formats:


%% ========================================================== record formats begin

-record( additional_amount_data, {
	 account_type,
	 amount_type,
	 currency_code,
	 amount_sign,
	 amount }).

-record( additional_amounts, {
	 data_length,
	 additional_amount_data_1 = #additional_amount_data{},
	 additional_amount_data_2 = #additional_amount_data{},
	 additional_amount_data_3 = #additional_amount_data{},
	 additional_amount_data_4 = #additional_amount_data{},
	 additional_amount_data_5 = #additional_amount_data{},
	 additional_amount_data_6 = #additional_amount_data{}
	 }).

%% ========================================================== record formats end


how would one assign values to additional amounts internal records? the following syntax yielded a syntax error - 
the assignment can be done by first assigning the data_length attribute and then in another Record assign the additional amount data.  But is there a more elegant "single" assignment statement that works - I tried a few without success - so I now know which DOES NOT work :)

%% ========================================================== record assignment code (syntax error) begin


         case RecordNumber of
            1 -> NewAdditionalAmountRecord = AdditionalAmountRecord#additional_amounts{ data_length = 1,
                                                            additional_amount_data_1#additional_amount_data{
                                                               account_type  = lists:sublist(AdditionalAmountData, 1, 2),
                                                               amount_type   = lists:sublist(AdditionalAmountData, 3, 2),
                                                               currency_code = lists:sublist(AdditionalAmountData, 5, 3),
                                                               amount_sign   = lists:sublist(AdditionalAmountData, 8, 1),
                                                               amount        = lists:sublist(AdditionalAmountData, 9, 12)}},
                 unpack_additional_amounts(DataLength-20, lists:nthtail(20,AdditionalAmountData), 2, NewAdditionalAmountRecord);

%% ========================================================== record assignment code (syntax error) end.

Thanks to everyone helping and responding



Danie Schutte
Phone: +27 - 11 - 203 - 1615
Mobile: 084-468-3138
e-Mail: 

#####################################################################################
The information contained in this message and or attachments is intended
only for the person or entity to which it is addressed and may contain
confidential and/or privileged material.  Any review, retransmission,
dissemination or other use of, or taking of any action in reliance upon,
this information by persons or entities other than the intended recipient
is prohibited. If you received this in error, please contact the sender and
delete the material from any system and destroy and copies.
#####################################################################################



More information about the erlang-questions mailing list