这是我的咖喱阶乘函数代码,我希望输出为实数
fun pow(x:real) (n:real)= if (n=0.0) then 1.0 else x:real*pow(x:real) (n-1:real) ;
但是我的语法真的很错误,我该如何解决?
我认为您想要的是:
fun pow x n =
if n = 0
then 1.0
else x * pow x (n - 1)
或者,如果您想更明确地说明类型:
fun pow (x : real) (n : int) : real =
if n = 0
then 1.0
else x * pow x (n - 1)
即:
n
的类型为int
,而不是real
类型。 (您的方法仅在n
是非负整数时才有意义,因为否则递归将永远消失。):real
-;它们不添加任何内容,因为编译器可以推断类型。