Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Vorteile von F# für mathematische Probleme
gaussmath
myCSharp.de - Member



Dabei seit:
Beiträge: 45

Themenstarter:

Vorteile von F# für mathematische Probleme

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
der-schlingel
myCSharp.de - Member

Avatar #avatar-3239.jpg


Dabei seit:
Beiträge: 799
Herkunft: Österreich/Wien

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Uwe81
myCSharp.de - Member



Dabei seit:
Beiträge: 282
Herkunft: Ludwigshafen

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Uwe81 am .
private Nachricht | Beiträge des Benutzers
gaussmath
myCSharp.de - Member



Dabei seit:
Beiträge: 45

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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.
Zitat
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.
Corpsegrinder
myCSharp.de - Member



Dabei seit:
Beiträge: 401

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
gaussmath
myCSharp.de - Member



Dabei seit:
Beiträge: 45

Themenstarter:

beantworten | zitieren | melden

Hallo Corpsegrinder,

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

Grüße, Marc
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 771

beantworten | zitieren | melden

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#?
private Nachricht | Beiträge des Benutzers
gaussmath
myCSharp.de - Member



Dabei seit:
Beiträge: 45

Themenstarter:

beantworten | zitieren | melden

Zitat von Cat

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!
private Nachricht | Beiträge des Benutzers