Erlang更改列表中元素的值

时间:2017-10-29 08:51:38

标签: list replace erlang tuples

你好有办法改变Erlang中列表头部的值

 Hd -> store2(Key, N,[New|List],New,false)

这是我接近改变它是列表的Head元素的新元素

store(Key, N, TupleList, New) when is_integer(N), N > 0, is_tuple(New) ->
store2(Key, N, TupleList, New, false).

store2(_Key,_N,[], New, false) -> [New];
  store2(Key, N,List, New, false) -> case fetch(Key, N, List) of
     [] -> List;
     false -> List++[New];
     Hd -> store2(Key, N,[New|List],New,false)
   end.

进一步澄清我使用一个名为fetch的函数,我定义该函数来查找要替换为另一个元素New

的元素

1 个答案:

答案 0 :(得分:2)

将您的新头部添加到List的尾部。

[New|tl(List)]

您通常将其写为模式匹配

some_function(..., [_Old|Tail] = _List, ...)->
    ...
    NewList = [New|Tail],
    ...