Replace an element at an index in a list in Erlang

2019-06-24 18:26发布

I have a list that will need its elements updated periodically. The elements do not have a key for lists:keyreplace. It will also grow dynamically. Is this a good way to update an element at a specific index in a list? Is there a better algorithm?

List = [1,2,3,4],
Index = 3,
NewElement = 5,
{HeadList, [_|TailList]} = lists:split(Index-1, List),
[1,2,5,4] = lists:append([HeadList, [NewElement|TailList]]).

标签: erlang
1条回答
放我归山
2楼-- · 2019-06-24 18:50

I wouldn't recommend using a list in this way, it makes me think that your problem might be design related rather than related to solving it neatly. Perhaps if you explains what you have the list for?

However if that is what you actually need/want/have to do; then what you are doing is correct.

I would recommend using an ets table or dict for random access operations.

查看更多
登录 后发表回答