Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sml 阶乘函数输入int,输出实数?_Sml_Smlnj - Fatal编程技术网

Sml 阶乘函数输入int,输出实数?

Sml 阶乘函数输入int,输出实数?,sml,smlnj,Sml,Smlnj,这简直快把我逼疯了。我能想象的最简单的事情,但我做不到 我只想用计算机阶乘输入一个整数,然后输出一个实数 我试过很多种方法来强迫别人 fun factorial 0 = 1 | factorial n = n * factorial(n-1); 数学上,n!=(n-1)!*N除非我误解了(这是可能的;我不知道ML),否则您的函数将始终返回1,因为它永远不会乘以n fun factorial 0 = 1 | factorial n = n * factorial(n-1); 我

这简直快把我逼疯了。我能想象的最简单的事情,但我做不到

我只想用计算机阶乘输入一个整数,然后输出一个实数

我试过很多种方法来强迫别人

fun factorial 0 = 1 |
    factorial n = n * factorial(n-1);
数学上,n!=(n-1)!*N除非我误解了(这是可能的;我不知道ML),否则您的函数将始终返回1,因为它永远不会乘以n

fun factorial 0 = 1 |
    factorial n = n * factorial(n-1);
我不知道如何返回实数而不是整数,也不知道这段代码是否会返回实数,但至少它应该给您一个正确的值。

从数学上讲,n!=(n-1)!*N除非我误解了(这是可能的;我不知道ML),否则您的函数将始终返回1,因为它永远不会乘以n

fun factorial 0 = 1 |
    factorial n = n * factorial(n-1);

我不知道如何返回实数而不是整数,也不知道这段代码是否返回实数,但至少它应该给您一个正确的值。

要将整数转换为实数,请使用
real.fromInt
。如果要返回reals,还应返回
1.0
,而不是
1
作为基本大小写。因此,您的代码变成:

fun factorial 0 = 1.0
  | factorial n = (Real.fromInt n) * factorial(n-1);

要将整数转换为实数,请使用
real.fromInt
。如果要返回reals,还应返回
1.0
,而不是
1
作为基本大小写。因此,您的代码变成:

fun factorial 0 = 1.0
  | factorial n = (Real.fromInt n) * factorial(n-1);

还有一点值得一提的是,后面的分号是多余的。这只是我输入的一个错误。。我已经正确地编码了至少int->int,您需要知道ML才能正确地强制为实数;只是出于习惯。。我知道这是不必要的,但我这样做只是为了视觉组织。还值得一提的是,尾随分号是多余的。只是我输入了一个错误。。我已经正确地编码了至少int->int,您需要知道ML才能正确地强制为实数;只是出于习惯。。我知道这是不必要的,但我这样做只是为了视觉组织。你是个怪人!!!!!!我一直在尝试n:real或real(n),同时也在使用1.0。现在,我的阶乘辅助函数在我的其余函数中正常工作…你是个怪人!!!!!!我一直在尝试n:real或real(n),同时也在使用1.0。现在,我的阶乘辅助函数对我的其余函数正常工作。。。