Diskussion:F-Sharp

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 3 Jahren von HalvarMA in Abschnitt Variablen
Zur Navigation springen Zur Suche springen

Sieht man die Syntax, wirkt diese im Vergleich zu anderen Sprachen wie C++ sehr komplex. Wirklich? Ist doch eher Ansichtssache und wenig neutral. Ich bin mir sogar ziemlich sicher, dass C++ komplizierter zu parsen ist als OCaml oder eben F#, da die Syntax letzterer Sprachen vereinheitlichter ist. --Eriatarka 18:48, 22. Jan 2006 (CET)

Das sehe ich genauso: ob eine Syntax "komplex wirkt" hängt doch primär vom Vorwissen des Betrachters ab; Ein Mathematiker der noch nie C++ verwendet hat wird die formale Struktur von Sprachen der ML-Familie wahrscheinlich recht schnell verstehen, ein halbwegs fundiertes Verständnis von C++ (mit Feinheiten wie templates, virtuellen Basisklassen usw.) dagegen wird er sich kaum an einem Wochenende erarbeiten können. Vorschlag: ich wäre dafür "sehr komplex" durch "wesentlich abstrakter" zu ersetzen. Die Begriffe High-Level (F#) / Low-Level (C++) würden es auch treffen, aber die sind schon wieder wertend. --Nikie 19:34, 16. Jun 2006 (CEST)


Hello World ist als Beispiel nicht gerade erhellend. Das verrät mehr über .net als über F#. Hat jemand ein sinnvolleres Beispiel, das die wichtigsten spezifischen Features von F# aufzeigt?

Ich hab ein paar Beispiele eingefuegt und einige offensichtliche Fehler (OOP, Null-Pointer) ausgebessert.

Variablen[Quelltext bearbeiten]

Im ersten Abschnitt ist schon ein Fehler. Für F# sind das keine Variablen sondern Identifier. Dieser Unterschied sollte nicht so einfach unter den Teppich gekehrt werden.

Das sehe ich genau so. Allerdings habe ich gehört, das dies Funktionen sind, die immer den gleichen Wert zurückgeben. Variablen ist aber auf jeden fall falsch. (nicht signierter Beitrag von Pdelvo (Diskussion | Beiträge) 19:42, 10. Apr. 2009 (CEST)) Beantworten

Alter Text "In F# gibt es keine Variablen, wie in anderen Programmiersprachen. Es gibt nur Funktionen, die immer denselben Rückgabewert haben. Diese werden in F# mit dem Schlüsselwort let deklariert und definiert." - Vorschlag neuer Text:"Iterative Sprachen ändern schrittweise die Werte von Variablen. In funktionalen Sprachen wie F# werden hingegen 'Identifier' mit dem Schlüsselwort let definiert, dessen Typ und Wert sich während der Ausführung des Programmes nicht ändert." - Anmerkung: der Wert ist während der Ausführung lediglich noch unbekannt oder kann ggf. nicht in endlicher Zeit ermittelt werden. Kl.hh 10:31, 8. Jun. 2009 (CEST)Beantworten

Die Dinger heißen Bindungen und dann ist gut. Aber Funktionen, die immer denselben Wert zurückgeben. Naja... Öhm, Quelle? (nicht signierter Beitrag von 92.231.137.213 (Diskussion) 18:13, 30. Mai 2013 (CEST))Beantworten

Habe den folgenden Absatz rausgenommen, weil er einfach falsch war. Leider habe ich das erst durch Ausprobieren gemerkt, nachdem ich ihn vorher schon umgestellt hatte. Die falsche Behauptung war aber schon länger im Artikel.

"
Derselbe Bezeichner kann entsprechend innerhalb desselben Gültigkeitsbereichs nicht mehrfach mit let deklariert werden:
:let pi = 3.1415927
:let pi = 10.0   // => Compiler-Fehler
:
"

In Wirklichkeit kann man den Bezeichner durchaus mehrfach hinterenander verwenden, das nennt man "Shadowing", es compiliert fehlerlos. Die Unterschiede zu einer normalen Zuweisung könnte man hier erklären, aber das würde über das Level hinausgehen, auf dem der Artikel sich an der Stelle befindet. Bei einer schnellen Einführuing in die Sprache verwirrt das m.E. eher. Vielleicht hat ja jemand Lust, es korrekt und hilfreich zu formulieren und wieder reinzunehmen. --HalvarMA (Diskussion) 10:09, 13. Jun. 2020 (CEST)Beantworten

Allgemein[Quelltext bearbeiten]

Es wäre noch dientlich wenn in der Einleitung zu diesem Artikel etwas zum Anwendungsfeld geschrieben wird. Ich selber habe leider keine Ahnung von F# und anderen funktionalen Sprachen und möchte gerne wissen, wo diese zur Anwendung kommen. Für welche Problemstellung wird diese (und ähnliche Sprachen) verwendet? --DataCore 11:03, 30. Jul. 2009 (CEST)Beantworten

Hmm, soweit ich die Selbsteinschätzungen bei Microsoft verstehe, wird das Einsatzgebiet der Sprache ähnlich wie bei Java oder den anderen "großen" .NET-Sprachen (insbesondere C#, C++ und BASIC) gesehen. --Mathias Erhart 14:39, 24. Jun. 2010 (CEST)Beantworten

Unterschiede zwischen F# und OCaml darstellen?[Quelltext bearbeiten]

Da ich mich gerade ein bisschen in F# einarbeite, und in meiner anfänglichen Naivität F# (nur) als eine Art Microsoft-OCaml sehe, habe ich gerade anhand OCaml-Tutorial (deutsche Übersetzung) festgestellt, dass F# im Gegensatz zu OCaml scheinbar doch Operatoren-Überladung unterstützt (bitte korrigieren, wenn diese Unterstellung so nicht zutrifft!):

Im OCaml-Tutorial steht, dass in OCaml fürs Addieren von Floatzahlen der Operator "+." und für Integer der Operator "+" zu verwenden sei. In F# hingegen gibt es offenbar gar kein "+.", dafür funktioniert dort das simple "+" sowohl mit floats als auch mit Integern. Lediglich der Ausdruck "1 + 2.0" wird wegen Typunterschiedlichkeit der beiden Operanden (wie zu erwarten) als fehlerhaft moniert.

Vermutlich gibt es noch einige Unterschiede mehr. Vielleicht mag jemand mit mehr Sprachwissen die (gravierendsten) Unterschiede im Artikel aufzählen.

--Mathias Erhart 14:39, 24. Jun. 2010 (CEST)Beantworten