Warum kann ich keine optionalen Parameter in losen Funktionen verwenden, die mit "let" definiert sind?F #: Warum kann ich optionale Parameter nicht in lockeren Funktionen verwenden?
Warum sind sie nur in Mitgliedsfunktionen erlaubt?
Warum kann ich keine optionalen Parameter in losen Funktionen verwenden, die mit "let" definiert sind?F #: Warum kann ich optionale Parameter nicht in lockeren Funktionen verwenden?
Warum sind sie nur in Mitgliedsfunktionen erlaubt?
Ich vermute, dass sie nur für die Kompatibilität mit .NET-Funktionen bereitgestellt werden. Sie sind nichts, was Ihnen in funktionalen Sprachen begegnet. Das Problem mit einem optionalen Parameter ist, dass Sie ihn nicht curren können. Wenn der zweite Parameter einer Funktion f optional ist, was ist
Lassen Sie g = f x
?
Ist es eine Funktion, die ein Argument annimmt, oder ein Wert, der durch Auswertung von f auf x plus dem zweiten Standardparameter erhalten wird?
Es ist in OCaml erlaubt. Daher sollte es möglich sein, es in F # zu implementieren.
http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec43
Ich denke, es der Einfachheit halber in F # weggelassen.