F #: Não entendo a correspondência .. com
Estou brincando com F # e Fable e tentando testar meu entendimento. Para fazer isso, tentei criar uma função para calcular e dado um certo número de iterações. O que eu vim com é
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
O que funciona bem, retornando 2.7182818284590455 quando chamado com
eCalc 20
No entanto, se eu tentar usar, o que eu acho que é, a forma mais correta
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
Recebo um aviso "[WARNING] Esta regra nunca será correspondida (L5,10-L5,11)" e retornou o valor 0. (e o mesmo acontece se eu trocar 'n' e 'contar' na partida declaração). Existe uma razão pela qual não posso usar 'n' na declaração de correspondência? Existe uma maneira de contornar isso para que eu possa usar 'n'?
obrigado