gpt4 book ai didi

biginteger - 如何在 SML 中使用 IntInf 或 LargeInt?

转载 作者:行者123 更新时间:2023-12-01 13:57:12 27 4
gpt4 key购买 nike

我想通过此链接中的 pow 等函数在 SML 中执行大整数计算:

http://www.standardml.org/Basis/int-inf.html#IntInf:STR:SPEC

但是我怎样才能使用这个“库”呢?


更新:

感谢您的回答。我知道了。我还必须更改打印限制

Control.Print.intinfDepth := 10000;

我为 IntInfs 创建了自己的 pow 函数(并且它有效),如下所示:

fun power 0 = IntInf.toLarge 1
| power n = IntInf.toLarge 2 * power(n-1);

最佳答案

这取决于您使用的实现方式,但通常您需要使用 Int.toLarge 将 Int 类型转换为 LageInt/InfInf 类型:

(* will be types as an IntInf *)
val aa = 10983298432984329843298432984329843298432987987987432987987987432987
val a = IntInf.pow(aa,10);

(* explicit type as if some other constraint had enforced this*)
val b = 10 : int
val c = Int.toLarge b;

val d = IntInf.pow(c, b);

变量 aa 可能无法在您的解释器中解析。这取决于你使用什么。我已经在 poly 和 mlton 中测试过了。

上面获取类型的地方(由带有 -show-basis 标志的 mlton 给出):

val a: intInf
val aa: intInf
val b: int32
val c: intInf
val d: intInf

关于biginteger - 如何在 SML 中使用 IntInf 或 LargeInt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com