OCaml上浮点的阶乘
我是OCaml的新手,我试着做一个尾部递归函数来计算浮点的阶乘。以下是我所做的:OCaml上浮点的阶乘,ocaml,tail-recursion,factorial,Ocaml,Tail Recursion,Factorial,我是OCaml的新手,我试着做一个尾部递归函数来计算浮点的阶乘。以下是我所做的: let factorial num = let rec aux i f = if i=num then f else aux (i+.1.) (float f*.(i+.1.)) in aux 0. 1.;; 它给了我一个错误:这个表达式有float类型,但是一个表达式应该是int类型 我不知道如何修复,因为我找不到错误在哪里。float是一个接受int并返回float的函数 # float;;
let factorial num =
let rec aux i f =
if i=num then f
else aux (i+.1.) (float f*.(i+.1.))
in aux 0. 1.;;
它给了我一个错误:这个表达式有float类型,但是一个表达式应该是int类型
我不知道如何修复,因为我找不到错误在哪里。
float
是一个接受int并返回float的函数
# float;;
- : int -> float = <fun>
为什么在第四行使用
float f
?
# let factorial num =
let rec aux i f =
if i=num then f
else aux (i+.1.) (f*.(i+.1.))
in aux 0. 1.;;
val factorial : float -> float = <fun>
# factorial 4.0;;
- : float = 24.