我正在搞乱F#和Fable,并试图测试我的理解.为此,我尝试创建一个函数来计算给定一定次数的迭代次数.我想出的是
let eCalc n =
let rec internalECalc ifact sum count =
match count = n with
| true -> sum
| _ -> internalECalc (ifact / (float count)) (sum + ifact) (count+1)
internalECalc 1.0 0.0 1
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,调用后返回2.7182818284590455
eCalc 20
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用,我认为是更正确的形式
let eCalc n =
let rec internalECalc ifact sum count =
match count with
| n -> sum
| _ -> internalECalc (ifact / (float count)) (sum + ifact) (count+1)
internalECalc 1.0 0.0 1
Run Code Online (Sandbox Code Playgroud)
我收到警告"[警告]此规则永远不会匹配(L5,10-L5,11)",返回值为0.(如果我在匹配中交换'n'和'count',也会发生同样的事情声明).有没有理由我不能在比赛声明中使用'n'?有没有办法解决这个问题,所以我可以使用'n'?
谢谢
f# ×1