F# - Übergang zur funktionalen Programmierung
» Von , 28.09.2009 16:07. Letztes Update, 28.09.2009 16:08.
F# - ein erster Überblick
Als Hybridsprache besitzt F# im Vergleich zu C# ein paar vertraute Elemente, auch wenn ein typisches F#-Programm für erfahrene C#-Entwickler am Anfang nur sehr schwer lesbar sein dürfte. Die größte Gemeinsamkeit ist natürlich, dass beide Sprachen auf dem .NET Framework basieren und F# dessen Möglichkeiten im selben Umfang anbietet wie C#. Wie C# ist auch F# eine typenstrenge Sprache, wenngleich explizite Typen aufgrund von Typinferenz nur selten im Quellcode auftauchen. Wie bei C# kommt es auf die Groß-/Kleinschreibung an. Der größte ,,Unterschied" besteht darin, dass Funktionen bei F# lediglich ein weiterer Datentyp sind. Ein
let add x y = x + y
definiert einen sog. Value, der für eine einfache Operation steht. Der Typ der Parameter wird vom Compiler aus dem +-Zeichen ,,erraten" (für bestimmte Typen gibt es einen Default-Typ, so dass der Compiler über keine hellseherischen Fähigkeiten verfügen muss). add besitzt als Typ eine Funktion im sog. Currying-Format (unter Currying versteht man das Aufteilen einer Funktion in eine Reihe von Teilfunktionen, so dass jede dieser Teilfunktionen mit genau einem Parameter aufgerufen werden kann). Man übergibt einen int als Parameter und bekommt eine Funktion zurück, die ebenfalls einen int als Parameter erwartet. Der folgende Befehl definiert eine Funktion, die eine Quadratzahl bildet:
let Quadrat x = x * x
Der nächste Befehl entsprechend eine Multiplikationsfunktion:
let Mul x y = x * y
Der nächste Befehl kombiniert beide Funktionen in einem Ausdruck und gibt das Ergebnis aus:
let Res = Mul (Quadrat 10) 20
Die runden Klammern dienen bei F#nicht zur Parameterübergabe, sondern legen die Reihenfolge fest.
Die Ausgabe erfolgt relativ vertraut:
open System
Console.WriteLine (Res)



KOMMENTARE
KOMMENTAR SCHREIBEN