【问题标题】:How does Erlang store large numbers?Erlang 如何存储大数?
【发布时间】:2016-08-08 03:12:30
【问题描述】:

我一直在修改一个阶乘模块,如下所示:

-module(factorial).
-export([factorial/1]).

factorial(0) ->
    1;
factorial(Val)->
    Val * factorial(Val-1).

如果我跑步:

1> c(factorial).
{ok,factorial}
2> factorial:factorial(100).

我得到: 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 P>

Erlang 如何如此轻松地保存如此大的数字?在 erlang.org 上,当它谈到数字类型时,它只是声明它们要么持有整数,要么持有浮点数。它必须是某种动态整数,可以根据需要调整其字节大小?

我觉得这很酷,我只是不知道它是怎么做的。

【问题讨论】:

    标签: functional-programming erlang


    【解决方案1】:

    这是许多函数式编程语言的共同特征,称为Arbitrary precision arithmetic

    请注意,在 Erlang 中,可以使用任意精度 only for integers, not floats

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-02
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 2014-11-30
      • 2013-08-06
      • 1970-01-01
      • 2013-02-14
      相关资源
      最近更新 更多