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


Elixir Enumerable.reduce用法及代码示例


Elixir语言中 Enumerable.reduce 相关用法介绍如下。

用法:

reduce(enumerable, acc, fun)
@spec reduce(t(), acc(), reducer()) :: result()

enumerable 缩减为一个元素。

Enum 中的大部分操作都是以reduce的形式实现的。此函数应将给定的 reducer/0 函数应用于 enumerable 中的每个元素,并按返回的累加器的预期进行。

有关详细信息,请参阅 result/0 acc/0 类型的文档。

例子

例如,这里是列表的reduce 的实现:

def reduce(_list, {:halt, acc}, _fun), do: {:halted, acc}
def reduce(list, {:suspend, acc}, fun), do: {:suspended, acc, &reduce(list, &1, fun)}
def reduce([], {:cont, acc}, _fun), do: {:done, acc}
def reduce([head | tail], {:cont, acc}, fun), do: reduce(tail, fun.(head, acc), fun)

相关用法


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