当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Enum.flat_map_reduce用法及代码示例


Elixir语言中 Enum.flat_map_reduce 相关用法介绍如下。

用法:

flat_map_reduce(enumerable, acc, fun)
@spec flat_map_reduce(t(), acc(), fun) :: {[any()], acc()}
when fun: (element(), acc() -> {t(), acc()} | {:halt, acc()})

映射和减少 enumerable ,使给定的结果变平(只有一层深)。

它需要一个累加器和一个接收每个可枚举元素的函数,并且必须返回一个元组,该元组包含一个新的可枚举(通常是一个列表),新的累加器或一个以:halt 作为第一个元素,累加器作为第二个元素的元组。

例子

iex> enumerable = 1..100
iex> n = 3
iex> Enum.flat_map_reduce(enumerable, 0, fn x, acc ->
...>   if acc < n, do: {[x], acc + 1}, else: {:halt, acc}
...> end)
{[1, 2, 3], 3}

iex> Enum.flat_map_reduce(1..5, 0, fn x, acc -> {[[x]], acc + x} end)
{[[1], [2], [3], [4], [5]], 15}

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Enum.flat_map_reduce(enumerable, acc, fun)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。