我正在尝试编写一个计算N的函数(fac:n:int-> int)!教师使用递归。但是我错了。希望你能帮忙
let rec factorial (fac : int -> int) =
if fac = 0 then 1
else fac * factorial (n-1)
let num = factorial 6
printfn "%A" num
printfn "%A" factorial
答案 0 :(得分:1)
您的功能没有“非常”错误,只有两个问题:
factorial
需要返回一个int
,并且不能将函数从int
传递到int
:let rec factorial (fac : int) : int =
fac-1
而不是n-1
:else fac * factorial (fac-1)
let rec factorial (fac : int) : int =
if fac = 0 then 1
else fac * factorial (fac-1)
let num = factorial 6
printfn "%A" num // 720