當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。