foreach循环与计数器

时间:2011-01-23 23:01:47

标签: erlang

我想在这个循环中添加一个计数器,以便知道列表中每个元素的行。你有一个简单的解决方案吗?

lists:foreach(fun(X) .... end,Y),

2 个答案:

答案 0 :(得分:10)

使用列表:foldl或编写自己的函数:

lists:foldl(fun(E,Cnt) -> ..., Cnt+1 end, 0, Y),

答案 1 :(得分:2)

如果您想自己滚动,这似乎可以按要求运行:

foreach_index(F, [H|T]) ->
    foreach_index(F, [H|T], 0).

foreach_index(F, [H|T], N) ->
    F(H, N),
    foreach_index(F, T, N + 1);

foreach_index(F, [], N) when is_function(F, 2) -> ok.

将使用两个参数调用函数F - 列表中的单个条目及其索引。