Enum.split_with/2根据给定的函数将可枚举项拆分为两个列表:
Enum.split_with([5, 4, 3, 2, 1, 0], fn(x) -> rem(x, 2) == 0 end)
{[4, 2, 0], [5, 3, 1]}
Run Code Online (Sandbox Code Playgroud)
或者在旧版本的 Elixir 中使用Enum.reduce/3:
Enum.reduce([5, 4, 3, 2, 1, 0], {[], []}, fn(x, {xs, ys}) ->
if rem(x, 2) == 0, do: {[x | xs], ys}, else: {xs, [x | ys]} end)
{[4, 2, 0], [5, 3, 1]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1640 次 |
| 最近记录: |