我想知道为什么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
答案 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遗产。