实数与整数的 SML 取幂
SML exponentiation of real with integer
我写了一个函数,它用底数、b 和指数 e 求幂,如下所示:
fun power b e = if e = 0 then 1 else b * power b (e-1);
显然这适用于整数,如输出所示:
val power = fn : int -> int -> int
但是,我希望它对 b 取实数,对 e 取整数。我尝试使用以下内容:
fun power (b : real) (e : int) = if e = 0 then 1 else b * power b (e-1);
虽然这给了我错误。感谢任何帮助。
为以后遇到同样问题的其他人准备好了:
对于 then 的情况,您必须将函数强制 return 为实数并且 return 为实数。
fun power b e : real = if e = 0 then 1.0 else b * power b (e-1);
returns:
val power = fn : real -> int -> real
我写了一个函数,它用底数、b 和指数 e 求幂,如下所示:
fun power b e = if e = 0 then 1 else b * power b (e-1);
显然这适用于整数,如输出所示:
val power = fn : int -> int -> int
但是,我希望它对 b 取实数,对 e 取整数。我尝试使用以下内容:
fun power (b : real) (e : int) = if e = 0 then 1 else b * power b (e-1);
虽然这给了我错误。感谢任何帮助。
为以后遇到同样问题的其他人准备好了:
对于 then 的情况,您必须将函数强制 return 为实数并且 return 为实数。
fun power b e : real = if e = 0 then 1.0 else b * power b (e-1);
returns:
val power = fn : real -> int -> real