erlang - 我怎样才能在 Elixir 中摆脱 Enum.reduce

标签 erlang elixir

我想找到第一个负数之前的所有正数的总和。

我在 elixir 中得到了以下列表。

iex(4)> steps = [0,1,2,3,-4,5,6,-1]

我计算这个列表的总和如下
Enum.reduce(steps,0,fn x,acc -> acc=acc+x end)

一旦我们达到负数,如何摆脱?

最佳答案

使用 Enum.reduce_while https://hexdocs.pm/elixir/Enum.html#reduce_while/3

[1,2,3,-4,5,6,-1] |> Enum.reduce_while(0, fn x, acc ->
   if x > 0, do: {:cont, acc + x}, else: {:halt, acc}
end )

关于erlang - 我怎样才能在 Elixir 中摆脱 Enum.reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52432333/

相关文章:

database - 保持与 Mnesia 的关系完整性

elixir - 将嵌套元组转换为 elixir 中的列表

elixir - 匹配多次出现的字符串 - Elixir Regex

erlang - Erlang 代码中 <<>> 是什么意思?

c++ - 使用 Erlang 消息传递在模拟中表示并发电梯

multithreading - transient gen_server 进程和更新 pids

ssl - 对于 OCSP 请求,erlang elixir nif char* 数据到二进制文件失败

elixir - 具有前瞻性的可枚举/流

arrays - Elixir 中最接近数组的东西

erlang - 在 Erlang 中替换元组中的键