Заменить элемент по индексу в списке в Erlang - PullRequest
4 голосов
/ 06 декабря 2010

У меня есть список, который будет периодически обновляться.Элементы не имеют ключа для списков: keyreplace.Это также будет расти динамически.Это хороший способ обновить элемент по определенному индексу в списке?Есть ли лучший алгоритм?

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

1 Ответ

6 голосов
/ 07 декабря 2010

Я бы не рекомендовал использовать список таким образом, это заставляет меня думать, что ваша проблема может быть связана с дизайном, а не с ее аккуратным решением.Возможно, если вы объясните, для чего у вас есть список?

Однако, если это то, что вам действительно нужно / нужно / нужно делать;тогда то, что вы делаете, правильно.

Я бы рекомендовал использовать таблицу ets или dict для операций произвольного доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...