我是Standard ML的新手。我正在尝试计算x的平方i,其中x是一个实数,而i是一个非负整数。该函数应采用两个参数,x和i
这是我到目前为止的内容:
fun square x i = if (i<0) then 1 else x*i;
我得到的错误是案例对象和规则不一致
与大多数语言一样,SML中的一元否定运算符不是-
,而是~
。这可能是导致您引用的特定错误的原因。
就是说,此代码还有其他问题。例如,L
在您发布的示例中不受约束。
我认为您可能希望函数看起来更像
fun square (x : real) 0 = 1
| square x i = x * (square x (i - 1))
您将需要递归以便计算平方。