【问题标题】:Elixir Enum vs Erlang ListsElixir 枚举与 Erlang 列表
【发布时间】:2018-08-13 08:32:23
【问题描述】:

在 Elixir 中编写代码时,是否有理由使用枚举库而不是 erlang 列表? list 有很多相同的功能,比如 takewhile、partition、any、all...

还有 elixir-lang.org 状态 “Elixir 提供了与 Erlang 库的出色互操作性。事实上,Elixir 不鼓励简单地包装 Erlang 库,而是支持直接与 Erlang 代码交互。”

是不是因为条件函数的格式需要不同,Enum才用在Lists上?

【问题讨论】:

  • Elixir 只是用于编写 Erlang 代码的优雅语法糖。如果你需要大量的香草 Erlang,那么 Elixir 可能会让你分心。也就是说,Elixir 的 Stream 和 Flow 提供的 List 操作的“扩展”对 vanilla Erlang 来说是一个真正的好处。

标签: erlang elixir


【解决方案1】:

因此,Enum 是一个模块,其中包含与实现 Enumerable 协议的数据结构一起使用的函数。

Erlang/Elixir 中的列表是链接列表,在索引和插入方面的算法复杂度方面具有 several properties

Elixir 中的枚举是数据结构,例如列表,但也包括映射和映射集。 但是,正如the documentation中所述:

Enum 中的大多数函数枚举整个可枚举并返回一个列表作为结果



话虽如此,使用Enum 函数而不是基于List 的函数的两个原因基本上是:

  1. 还有更多,将为您提供解决问题的非常有用的方法
  2. 它们是多态的。随时更改关键字列表的地图,不要浪费时间重写代码库中的所有内容。

【讨论】:

  • 谢谢。我没有考虑地图。
猜你喜欢
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
相关资源
最近更新 更多