W i l l k o m m e n   b e i   [ www.mauspfeil.com ]
 
 



 

Wörterbuch der Bedeutung
<<Zurück
Bitte wählen Sie einen Buchstaben:
A, Ä | B | C | D | E | F | G | H | I | J | K | L | M | N | O, Ö | P | Q | R | S | T | U, Ü | V | W | X | Y | Z | 0-9

Suchen:

(Groß-/Kleinschreibung wird nicht unterschieden)

Google


F-Sharp

*** Shopping-Tipp: F-Sharp

{{Korrekter Titel|F#}} F# ist eine Funktionale Programmierung funktionale Programmiersprache von Microsoft für das .NET_Framework .Net Framework. F# ähnelt von der Syntax her Ocaml OCaml und ML_(Programmiersprache) ML; dies deshalb, weil F# OCaml als Entwicklungsvorlage hatte; man gab ihm nun als F# auch .NET dazu. Viele Programme, die ungewöhnliche Konstrukte und F#/Caml-spezifische Bibliotheken vermeiden, können ohne Änderung mit F# und mit Caml kompiliert werden. F# soll eine einfache Sprache mit professionellen Möglichkeiten werden. Sieht man die Syntax, wirkt diese im Vergleich zu anderen Sprachen wie C++ oft wesentlich abstrakter.

Einige Syntaxmerkmale
* F# ist objektorientiert. F# ist CLI (Common Language Infrastructure)-konform. Somit kann in F# auf Typen zugegriffen werden die in anderen .NET-Sprachen geschrieben sind, und umgekehrt. Beispiel für eine Klassendeklaration: type MyData = class val first : int val mutable second : int new(a,b) = { first=a; second=b } member x.First = x.first member x.Second with get() = x.second and set(v) = x.second <- v member x.Next() = x.first <- x + 1 member x.Reset(v) = x.first <- 0; x.second <- 0 end * F# ist eine Funktionale_Programmierung funktionale Programmiersprache, das heißt Funktionen werden wie andere Werte behandelt. Mit "let" wird eine Funktion deklariert: let square x = x*x let do_twice f x = f(f x) do print_any (do_twice square 5) Druckt 625 aus. Die Funktion ''square'' wird als Funktionsparameter an ''do_twice'' übergeben, genau wie die Zahl 5. * F# bietet Typableitung, d.h. Typen von Ausdrücken werden automatisch ermittelt. Im obigen Beispiel wird für ''square'' der Typ ''square : int -> int'' ermittelt, d.h. ''square'' ist eine Funktion, die einen Parameter vom Typ ''int'' bekommt und einen Wert vom Typ ''int'' zurückgibt. Für ''do_twice'' erhält man den Typ: ''do_twice : ('a -> 'a) -> 'a -> 'a'', d.h. ''do_twice'' ist eine Funktion die als ersten Parameter einen Wert vom Typ ''('a -> 'a)'' (eine Funktion mit einem Parameter vom Typ 'a und einem Rückgabewert vom Typ 'a) bekommt, als zweiten Parameter einen Wert vom Typ 'a, und einen Wert vom Typ 'a zurückgibt. 'a hat hier die Rolle einer Typvariable (grob vergleichbar mit Generic- oder Template-Parametern in Java/C++) * ''let'' kann neben Funktionen auch Werte deklarieren : let pi = 3.1415927 ''let'' ist dabei keine Variablenzuweisung, sondern eine Deklaration, d.h. der Code: let pi = 3.1415927 let pi = 10.0 kann nicht kompiliert werden, da der Wert 'pi' zweimal deklariert wird. Ein so deklarierter Wert kann nicht verändert werden (insofern ist die Bezeichnung "Variable" missverständlich). Will man den Wert einer Variablen im Programmablauf ändern, muss man das bei der Deklaration eigens kenntlich machen: let x = ref 0 // x hat den Typ 'int ref', also ein Wert vom Typ int der im Programmablauf geändert werden kann let printX = print_any !x do x := 5 // an dieser Stelle im Programm wird der ursprüngliche Wert von x geändert do printX gibt 5 aus. Das in den beiden unteren Zeilen verwendete Schlüsselwort "do" leitet Aktionen ein, d.h. Funktionen die keinen Rückgabewert haben. * F# unterstützt mehrere Argumente/Rückgabewerte (offizieller Titel: ''Multiple Arguments'' und ''Multiple Returns''): let f (a,b,c) = (a+b, b+c, a+b) * F# bietet Pattern Matching: // Ein Element vom Typ Baum ist entweder ein ''Ast'' und enthält zwei Elemente vom Typ ''Baum'', // oder es ist ein ''Blatt'' und enthält einen int-Wert type Baum = Ast of Baum * Baum | Blatt of int let rec baumSumme x = match x with | Ast(l,r) -> baumSumme l + baumSumme r | Blatt(x) -> x * Zeiger_(Informatik) Nullpointer werden nur für die Interaktion mit .NET benötigt.

Kompilierung
F#-Code wird kompiliert, hierbei entsteht Zwischencode in der Common Intermediate Language (CIL), genau wie bei Programmen, die in C# oder VB.NET geschrieben wurden. Tatsächlich wird das gute Zusammenspiel mit anderen Programmiersprachen der .NET-Familie von Microsoft als einer der großen Vorteile von F# dargestellt. Der Compiler für F# kann sich selbst kompilieren (eine schon vorhandene, kompilierte Version vorausgesetzt), was eine lange Tradition im Compilerbau darstellt. Abgesehen vom F#-Compiler (fsc) gibt es auch einen F#-Interpreter (fsi), der F#-Code interaktiv ausführt.

Beispiel
Folgendes "Hello World"-Beispiel ist von [http://research.microsoft.com/projects/ilx/fsharp-manual%5Cdefault.aspx] übernommen. Es gibt ein einfaches "Hello World" aus. let main = System.Console.WriteLine("Hello World\n")

Siehe auch
*Objective CAML

Links

- F# Homepage von Microsoft Research
- F# Wiki Kategorie:Programmiersprache en:F Sharp programming language ko:F 샤프 nl:F sharp pl:F sharp ru:F# th:ภาษาเอฟชาร์ป zh:F#

*** Shopping-Tipp: F-Sharp




[Der Artikel zu F-Sharp stammt aus dem Nachschlagewerk Wikipedia, der freien Enzyklopädie. Dort findet sich neben einer Übersicht der Autoren die Möglichkeit, den Original-Text des Artikels F-Sharp zu editieren.
Die Texte von Wikipedia und dieser Seite stehen unter der GNU Free Documentation License.]

<<Zurück | Zur Startseite | Impressum | Zum Beginn dieser Seite