Lohnt es sich eine funktionale Sprache zu lernen?
-
Welche Sprache würdet ihr nehmen und gibts ein gutes Tutorial?
-
PLT Racket ist eine sehr schöne, angenehm zu nutzende umgebung die sehr gut dokumentiert ist: http://www.racket-lang.org/
Ansonsten ist Haskell mit Real World Haskell (http://book.realworldhaskell.org/read/) und Learn You some Haskell for great good (http://learnyouahaskell.com/chapters) auch nicht schlecht Dokumentiert.
Racket ist auf jeden fall einfacher und von der Syntax reiner aber Haskell fährt einen strengeren funktionalen Ansatz (der teilweise dinge etwas kompliziert macht)
Racket ist dynamisch und Haskell extrem statisch. Dieses Statische schein vielen leuten die von c++ kommen sehr zu gefallen.
Ich würde dir ganz klar von Haskell abraten und einfach PLT nehmen. Mir kommt ghc (einzige ernsthafte Haskell implementierung) äußerst feindlich vor!
-
Lies Struktur und Interpretation von Computerprogrammen und uebe mit einem Scheme-System deiner Wahl.
Mir kommt ghc äußerst feindlich vor!
Das heisst?
-
Wie wär es mit einer Hybrid-Sprache?
Schau dir mal Scala an. Diese Sprache vereint OOP und funktional orientiertes Programmieren. Ist auf jedem Fall ein Blick wert
-
Siassei schrieb:
Wie wär es mit einer Hybrid-Sprache?
Schau dir mal Scala an. Diese Sprache vereint OOP und funktional orientiertes Programmieren. Ist auf jedem Fall ein Blick wertZum Lernen des Paradigma ungeeignet, weil du sehr wohl imperativ in Scala programmieren kannst.
-
Zeus schrieb:
Zum Lernen des Paradigma ungeeignet, weil du sehr wohl imperativ in Scala programmieren kannst.
Sehe ich auch so. Echt tolle Sprache, aber zum lernen von funktionaler Programmierung nicht wirklich geeignet.
Wie sieht es mit Lisp aus. Hat zwar eine ungewohnte Syntax wenn man nur C-Syntax-ähnliches Sprachen kennt, aber das muss ja nichts schlechtes sein...
-
Antoras schrieb:
Wie sieht es mit Lisp aus. Hat zwar eine ungewohnte Syntax wenn man nur C-Syntax-ähnliches Sprachen kennt, aber das muss ja nichts schlechtes sein...
Lisp ist toll. Aber die meisten mir bekannten Lisps sind eher auf Multiparadigmen-Programmiersprachen. Ein sehr modernes und vergleichsweise funktional orientiertes Lisp ist zB. Clojure, das könntest Du Dir mal ansehen.
SICP lesen (darin wird Scheme verwendet) ist auch eine ausgezeichnete Idee, ich kenne niemanden, der dabei nicht eine Menge gelernt hätte.
-
-
Du könntest dir auch Python anschauen.. falls du dich mit FP nicht anfreunden kannst, kannste ja mit Python OOP machen
-
Also es macht auf jeden Fall Sinn eine funktionelle Sprache zu lernen. Du musst danach nicht in der Sprache programmieren, aber die Erfahrung sollte man machen, da man komplett neue Denkweisen kennenlernt, die unter anderem hilfreich sein können.
Haskell ist da sehr reizvoll. Leider muss ich eingestehen dass das Standard-Buch "Real World Haskell" aka RWH (welches online kostenlos verfügbar ist) schlecht ist. Es wird schlecht erklärt und die Codebeispiele kommen einem oft so vor als ob sie nur dazu dienen das Buch unnötig aufzublähen. Weiterhin vergisst der Autor ab und zu gewisse Sachen zu erläutern und benutzt es über Kapitel hinweg weiter, irgendwann in Kapitel 9 erläutert er es.
Naja, dazu gibt es irc.
Also das sollte dich nicht abschrecken Haskell zu erlernen. Aber auf jeden Fall bringt es was.