F #: не понимая совпадения .. с
Я возиться с F # и Fable, и пытаюсь проверить мое понимание. Для этого я попытался создать функцию для вычисления e с учетом определенного числа итераций. Что я придумал, так это
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
Который работает нормально, возвращая 2.7182818284590455 при вызове с
eCalc 20
Однако, если я попытаюсь использовать, как мне кажется, более правильную форму
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
Я получаю предупреждение «[ПРЕДУПРЕЖДЕНИЕ] Это правило никогда не будет совпадать (L5,10-L5,11)» и возвращает значение 0. (То же самое происходит, если я поменяю местами «n» и «count» в матче заявление). Есть ли причина, по которой я не могу использовать 'n' в выражении соответствия? Есть ли способ обойти это, чтобы я мог использовать 'n'?
Спасибо