Ste*_* Dr 4 sml greatest-common-divisor
我正在尝试创建一个处理非常大的数字的gcd函数.因此,到目前为止我尝试的任何事情都会导致错误.例如 :
fun gcd(a : Int.toLarge, b : Int.toLarge): Int.toLarge =
if b = 0
then a
else gcd(b, a mod b)`
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
Error:unbound type constructor : toLarge in path Int.toLarge
Run Code Online (Sandbox Code Playgroud)
有人可以给我一些建议,我的程序的其余部分似乎工作正常.先感谢您 !
你把Int.toLarge它看作是一种类型,但它是一种功能.您正在寻找的类型是IntInf.int.无论你输入什么类型的数字,gcd函数看起来都是一样的; 但您可能必须从另一个模块引用算术运算符.
这是Int.int类型的gcd函数:
fun gcd (a, 0) = a
| gcd (a, b) = gcd (b, a - b*(a div b))
Run Code Online (Sandbox Code Playgroud)
因为SML/NJ的算术运算符是重载的,所以这是IntInf.int的一个:
fun gcd (a, 0) = a : IntInf.int
| gcd (a, b) = gcd (b, a - b*(a div b))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |