Я написал функцию, которая делает возведение в степень с основанием, б и экспоненты е следующим образом:SML экспоненцирование реального с целыми
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);
Это дает мне ошибки. Любая помощь приветствуется.
, кстати, если вы действительно реализующие это, вы можете использовать [возведение в степень возведением в квадрат] (http://en.wikipedia.org/wiki/Exponentiation_by_squaring) , вместо линейного умножения 'b'' e' раз – newacct