F # bietet eine Funktion, bei der eine Funktion eine andere Funktion zurückgeben kann.
Ein Beispiel für eine Funktion, die eine Funktion in F # erzeugt, ist:
%Vor%Der beste Weg, um das Gleiche in C # zu erreichen, war dies:
%Vor%Gibt es einen anderen Weg (/ einen besseren Weg), dies zu tun?
Klar, das ist in C # einfach:
%Vor% Einfach peasy. Und wenn Sie die Manifest-Typisierung nicht mögen, können die meisten davon durch var
ersetzt werden.
Sie könnten eine Funktion schreiben, um eine andere Funktion zu curren. Die Unannehmlichkeit ist, dass Sie alle Überladungen erstellen müssten, die Sie benötigen.
Ein Beispiel:
%Vor% Wenn Sie powerFunctionGenarator
in C # umschreiben möchten, können Sie das ganz einfach tun:
Sie können die Methodendeklaration nicht innerhalb einer anderen Methode in C # einfügen. Aber wenn Sie das tun wollen, können Sie Lambda in einem Lambda verwenden, wie sblom vorgeschlagen hat:
%Vor%Dies entspricht dem folgenden Code in F #:
%Vor%Tags und Links c# f# functional-programming