为什么Elixir没有Math模块?

时间:2016-01-10 13:38:49

标签: elixir

我想知道为什么Elixir没有数学模块。

我知道我们可以使用Erlang math: module:

来编写它
alias :math, as: Math

但是,将这一行放入我们的Elixir代码中是不错的做法?

iex 中似乎有效:

iex(1)> alias :math, as: Math
nil
iex(2)> Math.pi()
3.141592653589793
iex(3)> Math.pow(3, 2)
9.0

唉,显然我们无法以Elixir的方式访问文档:

iex(4)> h(Math)
:math is an Erlang module and, as such, it does not have Elixir-style docs

2 个答案:

答案 0 :(得分:7)

实际上,他们有很多目前在erlang中没有elixir的模块。导入所有这些都没有多大意义,因为相应的erlang模块是可用的,并且它也很容易在elixir中使用它们。

同样来自docs

  

Elixir在同一个虚拟机中运行,并与OTP兼容。不仅如此,Erlang生态系统中提供的所有工具和库也可以在Elixir中使用,因为从Elixir调用Erlang没有转换成本,反之亦然。

至于文件Elixir仍然相对较新,人们是working on it。您应该很快在iex中获得erlang文档。 https://github.com/elixir-lang/elixir/issues/3589

答案 1 :(得分:7)

  

但是,将这一行放在我们的Elixir代码中是不错的做法?

是。最后,所有内容都被翻译成Erlang AST,然后编译成BEAM字节码。我们既不能否认也不会忘记Elix的Erlang遗产。