代码之家  ›  专栏  ›  技术社区  ›  some_id

打破列表并用索引号标记每个元素

  •  0
  • some_id  · 技术社区  · 15 年前

    如何拆分作为参数传递给函数的列表,并用数字标记每个元素?

    我的问题是如何在没有for循环的情况下在erlang中递增。

    谢谢

    1 回复  |  直到 15 年前
        1
  •  5
  •   nmichaels    15 年前

    这就是你想做的吗?

    tagger(List) ->
        tagger(List, 0).
    tagger([Head|Tail], Index) ->
        [{Head, Index}|tagger(Tail, Index + 1)];
    tagger([], _Index) ->
        [].
    

    因为如果是的话,你可以用 lists:mapfoldl :

    lists:mapfoldl(fun (A, AccIn) -> {{A, AccIn}, AccIn + 1} end, 0, List).