Gibt es eine Möglichkeit, eine Funktion über den Namen in F # aufzurufen? Bei einer gegebenen Zeichenfolge möchte ich einen Funktionswert aus dem globalen Namespace (oder im Allgemeinen einem bestimmten Modul) auswählen und aufrufen. Ich kenne den Typ der Funktion bereits.Kann ich eine Funktion über den Namen in f # aufrufen?
Warum sollte ich das tun? Ich versuche, um fsi zu arbeiten, keine --eval Option zu haben. Ich habe eine Skriptdatei, die viele int ->() Funktionen definiert, und ich möchte eine davon ausführen. Wie so:
fsianycpu --use:script_with_many_funcs.fsx --eval "analyzeDataSet 1"
war mein Gedanke, ein Trampolin Skript zu schreiben, wie:
fsianycpu --use:script_with_many_funcs.fsx trampoline.fsx analyzeDataSet 1
Um zu schreiben „trampoline.fsx“, würde ich brauchen die Funktion von Namen nachzuschlagen.
Dank verwendet werden könnten, die für mich funktioniert . @ jbtules Antwort sieht komplexer, aber auch möglicherweise robuster aus. Wenn die einfache Antwort funktioniert, mag ich die einfache Antwort. :-) –
Die gute einfache Antwort wird im interaktiven Szenario fallen, wenn jede partielle Kompilierung der ausführenden Assembly einen Typ und eine statische Methode desselben Namens hinzufügt. Und wie unterscheidet man zwischen gebundenen Funktionen und statischen Elementen auf Typen? – kaefer