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