Laden...

Vorteile von F# für mathematische Probleme

Erstellt von gaussmath vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.912 Views
G
gaussmath Themenstarter:in
45 Beiträge seit 2010
vor 13 Jahren
Vorteile von F# für mathematische Probleme

Hallo liebe myCSharp Community,

Microsofts neue Programmiersprache F# soll sich hervorragend eignen, um funktionale Zusammenhänge darzustellen. Das heißt also: Diese Sprache ist prädestiniert dafür, mathematische Probleme damit darzustellen und zu lösen.

Hat jemand Erfahrung mit F#? Wie ist die Performance? Wie lässt es sich damit entwickeln?

Gibt es gute Tutoriasl? Wenn ja, wo?

Danke und Grüße, gm

799 Beiträge seit 2007
vor 13 Jahren

Ich habe mir das ganze mit Beginning F# angesehen und habe eben nur ein paar kleine Sachen ausprobiert.

Zu aller erst erübrigt sich die Performance-Frage, da genauso wie C# F# nach MSIL übersetzt wird, weswegen du auch C#-DLLs in F#-Projekten und umgekehrt nutzen kannst.

Ich persönlich bin nicht davon überzeugt, dass ein großes Projekt nur in F# geschrieben sein sollte, da ich den Code gerade was UI und den OOP-Aufbau angeht, hässlich finde, allerdings sind mathematische Formeln fast 1:1 abbildbar, was das Umsetzen von Algorithmen natürlich sehr erleichtert. (Da unter anderem das Hantieren mit Datenmengen genauso unkompliziert von der Hand geht wie in Sprachen wie R.)

Ich finde es eine nette Abwechslung und interessant zu lernen, in der Firma würde ich es aber (auch wegen fehlendem Einsatzgebiet) nicht einsetzen.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
U
282 Beiträge seit 2008
vor 13 Jahren

Ich habe mal damit rumgespielt und finde es für manche Probleme intuitiv. Performance-Technisch meine ich mal gelesen zu haben, dass es i.d.R. etwas schlechter ist als C#. Dafür ist die Parallelisierung super simpel.

Es ist halt eine andere Art zu denken. Wenn man noch nie Funktional programmiert hat, wird es zu Beginn sogar abstoßend wirken.

Aber außerhalb von mathematischen Algorithmen halte ich C# für deutlich besser.

G
gaussmath Themenstarter:in
45 Beiträge seit 2010
vor 13 Jahren

Hallo zusammen!

Danke für eure Antworten. Ich habe auf http://www.ctocorner.com/fsharp/book/ ein E-book entdeckt. Das beschreibt F# einigermaßen ausführlich. Sollte sich Parallelisierung damit komfortabel umsetzen lassen, ist die Sprache für mich interessant!

Grüße, gm

Gelöschter Account
vor 13 Jahren

komfortable parallelisierung hast du mit .net 4.0 auch.

f# ist halt wie bereits erwähnt perfekt um algorithmen umzusetzen. f# ist prinzipbedingt in einigen bereichen bedeutend schneller als c#. diese bereiche sind vor allem bei komplexeren algorithmen abgedeckt.

c# hingegen ist deutlich schneller bei simpleren berechnungen mit wertetypen.

Zu aller erst erübrigt sich die Performance-Frage, da genauso wie C# F# nach MSIL übersetzt wird,

ersteres ist nicht wahr, letzteres hingegen schon.

f# unterstützt deutlich mehr inlining und hat ein viel besseres delegatenkonzept, was bei c# sehr bremst.

C
401 Beiträge seit 2007
vor 13 Jahren

Die Frage ist natürlich immer, was man machen will. Mit funktionaler Programmierung lassen sich Multicore-Systeme wesentlich effizienter nutzen, da das ewige Locken von Variablen und die damit verbundene Synchronisation vollkommen wegfallen, da es nur immutable Datenstrukturen gibt. Wenn man aber nicht ganz auf Objektorientierung verzichten möchte gibt es auch Hybriden wie z.B. Scala (die .Net Implementation soll leider nicht sehr gut sein), welche sowohl funktionale, als auch objektorienterte Konzepte bieten. Aktuell finde ich auch Clojure (ein LISP Dialekt) sehr interessant. Aber wie auch immer. Wer in Zukunft Applikationen schreiben will, die alles aus dem Rechner holen, der muss sich früher oder später mit funktionaler Programmierung auseinandersetzen.

G
gaussmath Themenstarter:in
45 Beiträge seit 2010
vor 13 Jahren

Hallo Corpsegrinder,

Haskell soll angeblich sehr schnell sein, lässt sich wahrscheinlich aber nicht in eine .NET Umgebung integrieren?!

Grüße, Marc

771 Beiträge seit 2009
vor 13 Jahren

Unter Liste von .NET-Sprachen ist es dort aufgeführt, jedoch konnte ich im Haskell-Artikel nichts darüber finden.

Jedoch findet man mit der Suche nach ".NET Haskell" u.a.:
The Haskell.net Project

Und unter dotnetpowered Language List finden sich noch zwei weitere Links zu Haskell.NET.

Die Frage ist jedoch, was bietet Haskell mehr als F#?

G
gaussmath Themenstarter:in
45 Beiträge seit 2010
vor 13 Jahren

Die Frage ist jedoch, was bietet Haskell mehr als F#?

Das frage ich mich auch. Angeblich soll es schneller sein als F#. Und das sogar wesentlich.

Danke für die Links!