3

Ruby 为 Enumerable 提供了这个很棒的方法group_by。Elixir有类似的东西吗?我在 Enum 模块上找不到此功能。谢谢

4

2 回答 2

4

还没有。我们没有添加它,因为我们正在等待地图。它将被添加到 v0.13 分支。:)

* 更新 *
对于没有注意到下面评论的任何人,现在已经添加了它。

于 2014-02-17T08:00:57.747 回答
3

这是Enum 模块中group_by/3的示例。

根据长度对字符串数组进行分组:

iex(12)> ["ant", "buffalo", "cat", "dingo"] |>  Enum.group_by(&String.length/1)

         %{3 => ["cat", "ant"], 5 => ["dingo"], 7 => ["buffalo"]}

从文档:

根据乐趣将集合分成组。

结果是一个字典(默认情况下是一个映射),其中每个键是一个组,每个值是一个集合中的元素列表,其中 fun 为其返回了该组。不一定会保留排序。

于 2015-08-16T04:19:58.120 回答