Erlang中文手册(Erldoc.com)  »  lists  »  flatmap/2
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

lists:flatmap/2

对映射 map 调用返回的列表进行附加 append 操作

用法:

flatmap(Fun, List1) -> List2

内部实现:

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

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

列表 List1 里的每一个元素以参数的方式被函数 Fun 调用,并把调用返回的列表进行 "++" 合并操作,最终返回一个列表。其效用跟 lists:append(lists:map(Fun, List1)) 一样。

lists:flatmap(fun(X)->[X, X] end, [a, b, c])
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9