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]]).
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.