F# - Übergang zur funktionalen Programmierung

    

» Von Peter Monadiemi, 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)

Werbung

KOMMENTARE

Keine Kommentare

KOMMENTAR SCHREIBEN

*
*
*
*

Alles Pflichfelder, E-Mail-Adresse wird nicht angezeigt.

Die Redaktion hält sich vor, unangebrachte, rassistische oder ehrverletzende Kommentare zu löschen.
Die Verfasser von Leserkommentaren gewähren der IDG Communications AG das unentgeltliche, zeitlich und räumlich unbegrenzte Recht, ihre Leserkommentare ganz oder teilweise auf dem Portal zu verwenden. Eingeschlossen ist zusätzlich das Recht, die Texte in andere Publikationsorgane, Medien oder Bücher zu übernehmen und zur Archivierung abzuspeichern.