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

lists:map/2

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

用法:

map(Fun, List1) -> List2

内部实现:

-spec map(Fun, List1) -> List2 when
      Fun :: fun((A) -> B),
      List1 :: [A],
      List2 :: [B],
      A :: term(),
      B :: term().

map(F, [H|T]) ->
    [F(H)|map(F, T)];
map(F, []) when is_function(F, 1) -> [].

跟 lists:foreach/2 一样,都是列表 List 里的每一个元素按从左向右的顺序被函数 Fun 调用,不同的是,每次函数 Fun 执行的结果将保留,并组成一个列表返回。

lists:map(fun(E) -> E * E end, [1, 2, 3, 4, 5]).