首页 > 解决方案 > 标准 ML:如何计算 x 的 i 次方?

问题描述

我是标准 ML 的新手。我正在尝试计算 x 的平方 i,其中 x 是实数,i 是非负整数。该函数应该有两个参数,x 和 i

这是我到目前为止所拥有的:

fun square x i = if (i<0) then 1 else x*i;

我得到的错误是案例对象和规则不同意

标签: smlsmlnj

解决方案


SML 中的一元否定运算符与-大多数语言中不同,而是~. 这可能是导致您引用的特定错误的原因。

也就是说,此代码还有其他一些问题。L例如,在您发布的示例中不受约束。

我想你可能希望你的功能看起来更像

fun square (x : real) 0 = 1
  | square x i = x * (square x (i - 1))

您需要递归以计算平方。


推荐阅读