gpt4 book ai didi

sml - 大数的 GCD

转载 作者:行者123 更新时间:2023-12-05 00:48:19 29 4
gpt4 key购买 nike

我正在尝试创建一个处理非常大数字的 gcd 函数。因此,到目前为止我尝试过的任何事情都会导致错误。例如 :

fun gcd(a : Int.toLarge, b : Int.toLarge): Int.toLarge =
if b = 0
then a
else gcd(b, a mod b)`

给我以下错误:
Error:unbound type constructor : toLarge in path Int.toLarge

有人可以给我一些建议,我的程序的其余部分似乎工作正常。先感谢您 !

最佳答案

你对待Int.toLarge好像它是一种类型,但它是一个函数。您要查找的类型是 IntInf.int。无论您输入什么类型的数字,gcd 函数看起来都是一样的;但是您可能必须引用另一个模块中的算术运算符。

这是 Int.int 类型的 gcd 函数:

fun gcd (a, 0) = a
| gcd (a, b) = gcd (b, a - b*(a div b))

由于 SML/NJ 的算术运算符被重载,这里是 IntInf.int 的一个:
fun gcd (a, 0) = a : IntInf.int
| gcd (a, b) = gcd (b, a - b*(a div b))

关于sml - 大数的 GCD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49896300/

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