Die beste Methode zum Generieren einer Funktion, die eine Funktion in C # generiert

7

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?

    
Ngm 24.01.2012, 07:43
quelle

4 Antworten

10

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.

    
Eric Lippert 24.01.2012, 08:09
quelle
6

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%     
Paolo Tedesco 24.01.2012 08:05
quelle
3

Fast wörtliche Übersetzung Ihrer ursprünglichen F # nach C #:

%Vor%     
sblom 24.01.2012 07:54
quelle
1

Wenn Sie powerFunctionGenarator in C # umschreiben möchten, können Sie das ganz einfach tun:

%Vor%

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%     
svick 24.01.2012 08:18
quelle

Tags und Links