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?
Welche funktionale Sprache lernen?
- 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.
Persoenlich bin ich ein grosser Freund von Lisp, aber Haskell laesst sich auch einiges abgewinnen.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@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.
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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.
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
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.
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.
@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.
Bei XSLT ist ausserdem die Syntax sauhässlich und sperrig. XML halt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.MagBen hat geschrieben:XSLT fehlt in der Liste.
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
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!
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.