F #: Übereinstimmung nicht verstanden .. mit

Ich spiele mit F # und Fable herum und versuche mein Verständnis zu testen. Zu diesem Zweck habe ich versucht, eine Funktion zur Berechnung von e bei einer bestimmten Anzahl von Iterationen zu erstellen. Was ich mir ausgedacht habe, ist

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

Welche gut funktioniert und 2,7182818284590455 zurückgibt, wenn mit @ aufgeruf

eCalc 20

How, wenn ich versuche zu verwenden, was ich denke, ist die korrektere Form

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

Ich erhalte die Warnung "[WARNING] Diese Regel wird niemals abgeglichen (L5,10-L5,11)" und erhalte den Wert 0 (und das Gleiche passiert, wenn ich 'n' und 'count' in der vertausche match statement). Gibt es einen Grund, warum ich in der Übereinstimmungsanweisung kein 'n' verwenden kann? Gibt es eine Möglichkeit, dies zu umgehen, damit ich 'n' verwenden kann?

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage