?标准ML:如何计算x的i次方?

问题描述 投票:0回答:1

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

这是我到目前为止的内容:

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

我得到的错误是案例对象和规则不一致

sml smlnj
1个回答
0
投票

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

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

我认为您可能希望函数看起来更像

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

您将需要递归以便计算平方。

© www.soinside.com 2019 - 2024. All rights reserved.