Wie gehe ich ohne C # -Kenntnisse an ein seriöses F # -Projekt heran?

11

Das Projekt, das ich durchführen möchte, ist also im Wesentlichen ein SVG-Editor. Ich würde es vorziehen, WPF zu verwenden, da ich dann XAML für mein Anwendungslayout nutzen kann (dieser Designer ist so geschickt). Leider benutze ich das .NET Framework erst seit einigen Monaten und bin mit den meisten Klassennamen noch nicht vertraut.

Das Ziel war es, F # zu verwenden, da es eine funktionale Programmiersprache ist und die Rekursion und die wunderbaren Listenoperationen von F # in Kombination mit Tupeln gut für das funktionieren, was ich erreichen möchte. Das Ziel ist die Verwendung von .NET aufgrund seiner riesigen Bibliothek verfügbarer und dokumentierter Klassen mit Beispielen.

Ich habe mir diese Frage bereits angesehen . /software/3129/is-there-a-canonical-book-on-f Die Antworten gelten jedoch nur für F # im Allgemeinen und setzen voraus, dass Sie bereits C # kennen, was für mich nicht besonders nützlich ist .

Das Top-Buch als Antwort auf die oben genannte Frage war Real-World Functional Programming: Mit Beispielen in F # und C #. Die 3-Sterne-Amazon-Rezension zu diesem Buch, obwohl sie ziemlich hart und vielleicht übertrieben ist, veranschaulicht mein Problem.

Wenn Sie an funktionaler Programmierung interessiert sind, aber kein C # sind, der F # lernen möchte, können Sie dieses Buch sicher überspringen.

Ich habe online nach WPF F # -Beispielen gesucht. Hier und da gibt es verschiedene Codefragmente, aber nichts Wesentliches oder Demonstrierendes, das außerhalb eines einzelnen Dateiskripts .fsx verwendet wird, und nichts wirklich auf Unternehmensebene oder sogar zumindest auf professioneller Ebene.

Selbst Microsoft hat also nicht wirklich viele Beispiele, wie man .NET-Sachen in F # macht. Die Beispiele, die ich gefunden habe, sind normalerweise nur Funktionen, die nur für F # gelten. Werfen Sie einen Blick auf die grundlegenden und erweiterten Abschnitte von F #, und Sie werden feststellen, dass sie nur die Syntax lehren. Beispielsweise enthält die MSDN in WPF für die Line-Klasse keine Codebeispiele in F #.

Wenn Sie auf der Registerkarte Codebeispiel für F # nach unten scrollen, wird nur angezeigt

No code example is currently available or this language may not be supported.

Bei so wenigen verfügbaren Codebeispielen fällt es mir schwer, dieses Projekt durchzuführen.

Meine Frage
Ich würde mich über Hilfe freuen, um zu verstehen, wie ich mit F # an dieses Projekt herangehen soll, wenn ich C # nicht so gut kenne.

Alexander Ryan Baggett
quelle

Antworten:

10

Teilen Sie das Problem in zwei Teile.

  1. Lernen Sie die Grundlagen von F #, indem Sie die Verwendung von WPF ausschließen. Erfahren Sie, wie Sie Funktionen schreiben, ohne mutablesund while statementsund zu verwenden function composition. Sobald Sie dies getan haben, lernen Sie, wie Sie Mutables verwenden, um den Status zu aktualisieren.

  2. Erfahren Sie, wie Sie WPF in F # verwenden, indem Sie Lernen von WPF über F # und umgekehrt von John Liao lesen .

Wenn Sie in F # keinen Code finden, den Sie mögen, denken Sie daran, dass F # ein Nachkomme von OCaml ist, also Google für OCaml und SVG, und Sie möglicherweise etwas Interessantes finden. Während F # OCaml nicht kompilieren kann, ist es sehr nah und sollte nicht viel Zeit zum Konvertieren benötigen. Ich habe eine große Menge OCaml in F # konvertiert und alles konvertiert.

Guy Coder
quelle