Improving my code

Vlad Dumitrescu XX (LN/EAB) <>
Thu Aug 11 15:16:19 CEST 2005


Hi,

> In the interests of improving my code (I understand the functional 
> paradigm but am not yet fluent in it) would someone kindly 
> suggest how can I improve upon the current snippets?

They look good, really. There are just a few observations to make:
 
> update_history([], _Name, _Value, Acc) ->
>    Acc;
***  lists:reverse(Acc);

> update_history([{Name, Max, Values}|Rest], Name, Value, Acc) ->
>    NewVs = trunclist([Value] ++ Values, Max),
***  NewVs = trunclist([Value | Values], Max),

>    update_history(Rest, Name, Value, Acc ++ [{Name, Num, NewVs}]);
***  update_history(Rest, Name, Value, [{Name, Num, NewVs} | Acc]);

> update_history([H|Rest], Name, Value, Acc) ->
>    update_history(Rest, Name, Value, Acc ++ [H]).
***  update_history(Rest, Name, Value, [H | Acc]).
 
This idiom of constructing a reversed list and "straighten it up" before returning is worth remembering - the application to trunclist is left as an exercise :-)

best regards,
Vlad



More information about the erlang-questions mailing list