Welche funktionale Sprache lernen?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten

Welche funktionale Sprache Sprache zuerst?

Haskell
4
40%
Erlang
2
20%
Common Lisp
1
10%
Scheme
1
10%
Clojure
1
10%
Scala
0
Keine Stimmen
Andere
1
10%
 
Insgesamt abgegebene Stimmen: 10
Xfd7887a
User
Beiträge: 135
Registriert: Montag 23. Juni 2014, 17:11

Ich weiß, dass die meisten hier im Forum mehrere Programmiersprachen beherrschen. Deshalb meine Frage:
Welche funktionale Sprache sollte man eurer Meinung nach lernen, um die funktionalen Programmier-Prinzipien am besten zu verstehen?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Mit der Einschraenkung, dass du die "Prinzipien am besten verstehen" willst - im Grunde Zustandslosigkeit - bleiben IMHO nur Clojure und Haskell aus deiner Liste uebrig, alle anderen lassen (impliziten) Zustand zu.

Persoenlich bin ich ein grosser Freund von Lisp, aber Haskell laesst sich auch einiges abgewinnen.
Xfd7887a
User
Beiträge: 135
Registriert: Montag 23. Juni 2014, 17:11

Welche der beiden Programmiersprachen ist weiter verbreitet?
BlackJack

@Xfd7887a: Ich würde von den beiden Haskell nehmen. Clojure ist ja bloss ein weiterer Lisp-Dialekt, da hätte man also auch Common Lisp oder Scheme vorschlagen können. Ist aber alles im Gegensatz zu Haskell nicht rein funktional.

Wenn man unbedingt eine der Sprachen mit den vielen Klammern zum Lernen nehmen will, würde ich dagegen Scheme empfehlen, wegen Structure and Interpretation of Computer Programs.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Clojure ist ja bloss ein weiterer Lisp-Dialekt, da hätte man also auch Common Lisp oder Scheme vorschlagen können. Ist aber alles im Gegensatz zu Haskell nicht rein funktional.
Würde ich nicht sagen, mit der "rein funktional"-Begründung kann man auch OCaml oder SML abtun, aber sind beides durchaus gar keine schlechten Optionen um funktional Programmieren zu lernen. Ich bin extra zu Clojure weil mir Scheme zu imperativ war und Clojure zwar nicht rein funktional ist, aber vom Ansatz sehr in die Richtung geht, was man an der Stdlib erkennen kann. In Clojure kann man sich auch weniger verrennen als in Haskell, wo man schnell in Arrows, Lenses oder was auch immer rein läuft und dann verwundert ist dass alles so komplex ist. Zudem hat Clojure den Vorteil einer simplen Syntax und der eingebauten Möglichkeit für Makros.

Sind halt ganz andere Sprachen, beide auf ihre Weise gut, beide mit Vor- und Nachteilen.

Ob Clojure oder Haskell verbreiteter sind ist tatsächlich ne gute Frage, die Trends sind etwas uneindeutig.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

XSLT fehlt in der Liste.

Der Vorteil von XSLT ist, es geht nur um die Transformation von XML. Das lässt sich mit einem gewöhnlichen Browser ausprobieren, indem man XML zu XHTML transformiert. Außerdem lernt man dabei noch XPath, was auch sehr nützlich ist.
a fool with a tool is still a fool, www.magben.de, YouTube
BlackJack

@MagBen: Halte ich bei der Ausgangsfrage für keine gute Idee. Auch wenn XSLT Turing-Vollständig ist, ist das ein (netter) Missbrauch der Sprache, denn normalerweise reizt man diese Eigenschaft in der Praxis nicht aus. Ausserdem gehört zum funktionalen Programmieren ein Grundstock von Funktionen die man im Grunde in der Standardbibliothek jeder funktionalen Programmiersprache vorfindet. Mit einer richtigen Programmiersprache lernt man so Idiome und Funktionen die man leicht auf andere Sprachen übertragen kann, in dem man schaut wie die Grundwerkzeuge dort heissen und wie sie sich im Detail vielleicht unterscheiden. Man erwirbt also Wissen welches sich leicht übertragen lässt. Oder umgekehrt hat man in einer imperativen Sprache ein wenig Erfahrung, fragt man sich doch wie man das funktional lösen würde. Wie hilft einem XSLT da im allgemeinen weiter?

Bei XSLT ist ausserdem die Syntax sauhässlich und sperrig. XML halt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

MagBen hat geschrieben:XSLT fehlt in der Liste.
XSLT ist eine gute Idee wenn man jemanden von funktionaler Programmierung nachhaltig verschrecken will. Die Sprache ist sehr auf Transformation von XML ausgelegt und für sehr viel mehr taugt sie nicht, dafür ist sie furchtbar zu programmieren und ähnlich schlimm zu debuggen.

Ich hatte schon auch mit XSLT Spaß, aber eher Spaß wie man es mit esoterischen Programmiersprachen wie Brainfuck hat, als Spaß so dass ich gerne damit tagtäglich arbeiten wollte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Üpsilon
User
Beiträge: 222
Registriert: Samstag 15. September 2012, 19:23

Ich habe vor nem Jahr oder so mal Common Lisp gelernt und ich hab noch nie ein ernsthaftes Programm damit geschrieben. Und ich bereue es trotzdem nicht!

Wenn man den Fokus völlig aufs Funktionale legen will, ist CL wahrscheinl nicht optimal, ABER jeder sollte es sich mal anschauen. Weil Lisp so ein paar einzigartige Features und Eigenschaften hat. (Code=Listen)

Lisp hat definitiv Swag. Nur die Syntax ist ... weicht von meinem Geschmack ab. Lernt alle Lisp!
PS: Die angebotene Summe ist beachtlich.
Antworten