Obwohl ich absolut kein Plan von C# und .Net habe und auch sonst Microsoft ... hasse, konnte ich doch der Werbung zu dem F#-Tutorial von Andreas nicht widerstehen. Da es für mich auf keinen Fall in Frage kommt Windows zu installieren habe ich die freie, .Net kompatible Laufzeitumgebung Mono installiert. Da dies nicht so einfach ging hier ein kurzes HowTo. Anmerkung: Ich weiß nicht ob alle diese Schritte genau so notwendig sind, da ich wie schon erwähnt mich auf dem Gebiet nicht auskenne, aber so läuft alles.
Zuerst einmal die Laufzeitumgebung inklusive Libraries und C#-Compiler installieren. Da ich (noch) Kubuntu nutze hier erläutere ich hier mal nur den Ubuntu-Weg. In allen anderen Distributionen sollte es allerdings ähnlich ablaufen. Anmerkung: Installiert braucht Mono gut 100MB, also mal kurz installieren und testen lohnt fast nicht.
sudo apt-get install mono-devel
Da dies soweit ich das beurteilen kann allerdings nur den C# 1.0 Compiler installiert installieren wir noch den 2.0 Compiler inklusive Libraries nach. Außerdem werden noch für C# zwei zusätzliche Libraries benötigt:
sudo apt-get install mono-gmcs libmono-winforms1.0-cil libmono-system-runtime2.0-cil
Jetzt sollte Mono so weit laufen. Testen kann man dies indem man ein Beispiel von der Student Homepage herunter lädt (Wenn das mal kein Werbebonus gibt) und mit gmcs Program.cs
kompiliert. Ausführen lässt sich das Ergebnis einfach mittels mono Program.exe
. Das einzige was noch zu klären bleibt: Warum zum Henker machen Windowsanhänger bei Konsolenprogrammen immer ein Console.ReadLine();
am Ende? ;-)
Soweit zu Mono. Jetzt kommt der F# Teil. Erst einmal F# downloaden. Am besten wählt man hier Download F# 1.9.3.14 als Zip aus. Das Paket entpacken und als Administrator installieren. (Gefällt mir ja überhaupt nicht ein Microsoft Produkt als Administrator auf meinem Rechner auszuführen.) Hierzu einfach das mitgelieferte Bashscript ausführen:
sudo bash install-mono.sh
Dieses Script installiert F# und kompiliert das ganze in das bin
-Verzeichnis. Hat alles so weit geklappt ist man nun (mehr oder weniger) stolzer Besitzer von F# und kann sich gleich an der ersten Aufgabe von Andreas versuchen.
Als Beispiel gleich mal meine Lösung:
#light open System let rec (!) (a : int) = if (a = 1) then a else let a2 = a - 1 a * !a2 printfn "Zahl eingeben:" let a = read_line () let endresult = !Convert.ToInt32(a) printfn "Die fakultaet von %s ist %i" a endresult
Das wird nun mit folgendem Befehl erst kompiliert und anschließend ausgeführt:
downloads/FSharp-1.9.3.14/bin/fsc.exe fakultaet.fs mono fakultaet.exe
Wenn man dem Binary Ausführungsrechte gibt kann man es auch einfach mittels ./fakultaet.exe
ausführen.
Das einzige was jetzt noch schön wäre, ist ein vim Syntax-Style für F#...
Bleibt abzuwarten wann Tutorial Teil 3 folgt. Ich bin gespannt!