Bitte Beachten: Dieser Blog wird hier nicht weiter geführt! Kommentare und neue Blogposts gibt es unter http://feitel.indeedgeek.de. Dort bitte auch neue Kommentare zu diesen Beiträge erstellen.

Mittwoch, 13. Februar 2008

Mono Funktional

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!

Samstag, 9. Februar 2008

Willkommen zurück

Nachdem ich gestern die letzte Prüfung hinter mich gebracht habe. Bin ich heute offiziell in meine Ferien gestartet. Jetzt heißt es erst einmal Aufarbeiten was sich so angesammelt hat. Die nächsten 5 Wochen sind eigentlich schon relativ verplant mit Gentoo installieren, zwei Server einrichten, Python anschauen, und vor allem Bücher lesen.

Das bringt mich auch gleich zu dem absolut völlig sinnlosen Stöckchen das mir Aaron zugeworfen hat. Die Bücher die gerade vor mir liegen:

Das Stöckchen gibt es allerdings nur für das letzte Buch:

  1. Nimm das nächste Buch in deiner Nähe mit mindestens 123 Seiten.
  2. Schlage Seite 123 auf.
  3. Suche den fünften Satz auf der Seite.
  4. Poste die nächste drei Sätze.
Er würde den Stich von St. Clement's Dane kaufen, ihn aus dem Rahmen nehmen und unter seinem Overall nach Hause tragen. Er würde Mr. Charrington den Rest dieses Gedichtes aus dem Gedächtnis reißen. Sogar sein Irrsinnsplan, das Zimmer oben zu mieten, schoß ihm erneut durch den Kopf.

Eigentlich ein super Buch, ich sollte es nur endlich mal fertig lesen.

Da ich Stöckchen total fürn Arsch finde und dann noch so Sinnlose, bleibt dieses wohl bei mir liegen und wird ich weiter geworfen!