这绝对让我疯狂。我能想象的最简单的事情,我无法做到。factorial函数输入int,输出实数?
我只是想计算机阶乘输入一个int并输出一个实数。
我试过以各种方式胁迫。
fun factorial 0 = 1 |
factorial n = n * factorial(n-1);
这绝对让我疯狂。我能想象的最简单的事情,我无法做到。factorial函数输入int,输出实数?
我只是想计算机阶乘输入一个int并输出一个实数。
我试过以各种方式胁迫。
fun factorial 0 = 1 |
factorial n = n * factorial(n-1);
为int转换为真实的,你用Real.fromInt
。如果你想退货,你应该返回1.0
而不是1
作为基本情况。所以,你的代码就变成了:
fun factorial 0 = 1.0
| factorial n = (Real.fromInt n) * factorial(n-1);
在数学上,n! =(n-1)! * n。除非我误解事物(这是可能的;我不知道ML),否则你的函数总是返回1,因为它永远不会乘以n。
fun factorial 0 = 1 |
factorial n = n * factorial(n-1);
我不知道你是怎么返回一个真正的,而不是一个int,或该代码是否即使这样做,但它至少应该给你一个正确的值。
你是FREAKIN人!!!!!!我一直试图n:真正的或真实的(n),同时也使用1.0。现在我的因子辅助函数对我的其余功能正常工作... – DJPlayer 2011-03-22 01:40:51