Elixir语言中 Enum.reduce_while
相关用法介绍如下。
用法:
reduce_while(enumerable, acc, fun)
@spec reduce_while(t(), any(), (element(), any() -> {:cont, any()} | {:halt, any()})) ::
any()
减少 enumerable
直到 fun
返回 {:halt, term}
。
fun
的返回值预计为
{:cont, acc}
以acc
作为新累加器继续减少或{:halt, acc}
停止还原
如果 fun
返回 {:halt, acc}
则减少停止并且函数返回 acc
。否则,如果 enumerable 用尽,则该函数返回最后一个 {:cont, acc}
的累加器。
例子
iex> Enum.reduce_while(1..100, 0, fn x, acc ->
...> if x < 5, do: {:cont, acc + x}, else: {:halt, acc}
...> end)
10
iex> Enum.reduce_while(1..100, 0, fn x, acc ->
...> if x > 0, do: {:cont, acc + x}, else: {:halt, acc}
...> end)
5050
相关用法
- Elixir Enum.reduce用法及代码示例
- Elixir Enum.reject用法及代码示例
- Elixir Enum.reverse_slice用法及代码示例
- Elixir Enum.reverse用法及代码示例
- Elixir Enum.random用法及代码示例
- Elixir Enum.unzip用法及代码示例
- Elixir Enum.min_max用法及代码示例
- Elixir Enum.at用法及代码示例
- Elixir Enum.split_with用法及代码示例
- Elixir Enum.dedup用法及代码示例
- Elixir Enum.sum用法及代码示例
- Elixir Enum.zip用法及代码示例
- Elixir Enum.find_value用法及代码示例
- Elixir Enum.product用法及代码示例
- Elixir Enum.map_join用法及代码示例
- Elixir Enum.zip_with用法及代码示例
- Elixir Enum.intersperse用法及代码示例
- Elixir Enum.flat_map用法及代码示例
- Elixir Enum.count用法及代码示例
- Elixir Enum.fetch用法及代码示例
- Elixir Enum.frequencies用法及代码示例
- Elixir Enum.drop用法及代码示例
- Elixir Enum.slice用法及代码示例
- Elixir Enum.max_by用法及代码示例
- Elixir Enum.zip_reduce用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Enum.reduce_while(enumerable, acc, fun)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。