練習問題 3.8
(* 練習問題 3.8 *)
(* 指数関数を iterpow という名前で反復的に定義しなさい *)
let rec iterpow (n, x) =
if x = 0 then 1.
else
if x > 0
then iterpow (n, x - 1) *. n
else iterpow (n, x + 1) /. n;;
(* TEST *)
let test1 = iterpow(2., 3) = 8.;;
let test2 = iterpow(2., 4) = 16.;;
let test3 = iterpow(0.5, 1) = 0.5;;
let test4 = iterpow(0.5, 2) = 0.25;;
let test5 = iterpow(2., -1) = 0.5;;
let test6 = iterpow(0.5, -1) = 2.0;;
let test7 = iterpow(0.5, -2) = 4.0;;