> Erlang中文手册 > foreach/2 列表里的每一个元素被函数调用

lists:foreach/2

列表里的每一个元素被函数调用

用法:

foreach(Fun, List) -> void()

内部实现:

-spec foreach(Fun, List) -> ok when
      Fun :: fun((Elem :: T) -> term()),
      List :: [T],
      T :: term().

foreach(F, [Hd|Tail]) ->
    F(Hd),
    foreach(F, Tail);
foreach(F, []) when is_function(F, 1) -> ok.

列表 List 里的每一个元素按从左向右的顺序被函数 Fun 调用,最后返回一个原子 ok。

lists:foreach(fun(E) -> E * E end, [1, 2, 3, 4, 5]).
try
    lists:foreach(
        fun(5) ->
                5 * 5,
                throw(foreach_done);
            (E) ->
                E * E
        end, 
        [1, 2, 3, 4, 5])
catch
    throw:foreach_done ->
        foreach_done
end.