如何在SML中使用IntInf或LargeInt?

2024-03-09

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

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

但我如何才能使用这个“图书馆”呢?


UPDATE:

感谢你的回答。我得到了它。我还必须更改打印限制

Control.Print.intinfDepth := 10000;

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

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

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

(* 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可能无法在您的解释器中进行解析。这取决于你使用什么。我已经在聚和米尔顿中测试过它。

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

val a: intInf
val aa: intInf
val b: int32
val c: intInf
val d: intInf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在SML中使用IntInf或LargeInt? 的相关文章

  • C# 格式任意大的 BigInteger 用于无尽的游戏

    我正在尝试创建一个无尽的游戏 例如 Tap Titans Clicker Heroes 等 我有一个 BigInteger 类 它能够表示任意大的整数 只要它们适合内存即可 现在我有一个类将 BigInteger 格式化为特定格式 它使用
  • 费马素性测试的实现

    谁愿意帮我做作业 我正在尝试实施费马素性测试在 Java 中使用 BigIntegers 我的实现如下 但不幸的是它不起作用 有任何想法吗 public static boolean checkPrime BigInteger n int
  • 当我们定义柯里化风格的函数时,我们可以声明参数的类型吗?

    如果我定义一个带有元组样式参数的函数 我可以定义参数类型和返回类型 fun hello name String code int String hello 但如果我使用咖喱风格 我只能这样做 fun hello name code hell
  • 如何从 Java 中的 BigInteger 获取无符号字节数组?

    我需要转换一个大整数 https docs oracle com javase 7 docs api java math BigInteger html以大端格式编码的无符号整数 但我遇到了问题BigInteger toByteArray
  • 我可以注释“fun”声明的完整类型吗?

    在学习环境中 我可以选择哪些选项来为函数提供类型签名 标准 ML 没有像 Haskell 那样的顶级类型签名 以下是我考虑过的替代方案 模块签名 需要单独的签名文件 或者在与模块本身相同的文件内的单独块中定义的类型签名 这需要使用模块 在任
  • 计算任意大整数的整数平方根 (isqrt) 的有效算法

    Notice 对于解决方案Erlang or C C go to Trial 4 below 维基百科文章 整数平方根 http en wikipedia org wiki Integer square root 整数平方根 的定义可以在这
  • 记录列表上的SML功能

    我试图声明一个函数 该函数将元组内的记录列表作为参数 但语法并不像我希望的那样直观 这就是我想做的 type Player id int privateStack int list fun foo id x xs Player player
  • SML:为什么函数总是采用一个参数使语言变得灵活

    我 从一本 SML 书中 了解到 SML 中的函数总是只接受一个参数 一个元组 接受多个参数的函数只是一个接受一个元组作为参数的函数 通过函数绑定中的元组绑定来实现 我明白这一点 但在这之后 书上说了一些我不明白的话 this point
  • 随机化一个 BigInteger

    I m looking to randomize a BigInteger The intent is to pick a number from 1 to 8180385048 Though from what I noticed the
  • 输出在 REPL 中被 # 符号截断

    我编写了一个按预期工作的函数 但我不明白为什么输出是这样的 功能 datatype prop Atom of string Not of prop And of prop prop Or of prop prop XOR A And Not
  • 为什么有 BigInteger(String) 而没有 BigInteger(long)?

    在 Java 中 要将 String 转换为 BigInteger 可以使用构造函数new BigInteger String 但要转换 int long 你可以使用工厂函数BigInteger valueof long 这是为什么 Mor
  • Objective C 中的惰性数据类型

    在 SML 中 可以采用以下方式对惰性编程进行建模 Have a datatype to wrap a computation datatype a susp Susp of unit gt a A function to hold the
  • 大整数的 GCD 算法

    我正在研究快速 次二次 GCD 计算算法并寻找它们的任何细节 我想看看它们的实现 以便有机会更好地理解它们 Euclid GCD 和 Binary GCD 算法 具有二次运行时间 显然非常简单 我对它们没有任何问题 我正在寻找的算法是 Le
  • 无限大小的整数?

    在Python中 我可以编写一个程序来计算无限大小的整数 就在前几天 我做了百万分之一斐波那契数 它太大了 无法放入控制台 如果可以在 Python 中做到这一点 据我了解 Python 是用 C 编写的 那么如何在 C 中做到同样的事情呢
  • 为什么我的处理器没有内置 BigInt 支持?

    据我了解 BigInts通常在大多数编程语言中实现为包含数字的数组 例如 当添加其中两个数字时 每个数字都会像我们在学校学到的那样被一个接一个地添加 例如 246 816 1062 其中 标记存在溢出 我在学校是这样学的 我实现的所有 Bi
  • SML 和函数式编码风格

    我开始学习标准机器学习编程语言 https www coursera org course proglang course 在第一个作业中 我尝试编写一个函数is older需要两个日期并评估为true or false 它评估为true如
  • 有类似 Haskell/ML 的 C 编译器吗?

    People have http jlongster com software iphone scheme iphone example 书面games http www artisancoder com 2009 10 scheme hi
  • 标准机器学习中的结构比较

    我似乎找不到关于为什么这不起作用的参考 2000 1 lt 2000 1 stdIn 18 1 18 18 Error operator and operand don t agree overload operator domain Z
  • Mono.Math.BigInteger 由于其保护级别而无法访问

    我正在使用 ideone 编写 C 程序 这是我第一次使用 Mono 我正在尝试使用 BigInteger 类 Mono Math BigInteger 但我不断收到错误 下面是我的代码 这是怎么回事 我该如何解决 谢谢 using Sys
  • 使用 BigInteger 进行 Karatsuba 乘法

    我首先使用 long 编写了 Karasuba 算法的代码 我认为它工作得很好 使用相同的逻辑 我将代码转换为 BigInteger 但由于某些原因 它给出了 StackOverflowError 我不明白为什么 请帮忙 EDIT1 长时间

随机推荐