wie man in die übergeordnete funktionale Programmierung vorrückt [geschlossen]


12

Zunächst entschuldige ich mich, wenn dies nicht der richtige Ort für diese Frage ist, aber ich denke, dass das CS mit Sicherheit nicht der richtige Ort ist und StackOverflow auch nicht.

Ich mag funktionales Programmieren wirklich und ich denke, ich bin ein mittelständischer Typ in F # und verstehe die Grundkonzepte von Haskell ziemlich gut - und ja, ich glaube, ich weiß / bin gefallen, als ob ich weiß, was eine Monade ist.

Jetzt möchte ich das wirklich auf die nächste Ebene heben und verstehen, worum es bei all dem Gerede über Funktoren und so geht. Ich weiß nur nicht, wo ich anfangen soll.

Hast du etwas über Lambda Calculus gelesen? Kategorietheorie? Beide kenne ich ein bisschen und ich denke nicht, dass dies der richtige / schnellste Weg zur Erleuchtung ist.

Vielleicht kannst du mir dazu ein paar Hinweise geben.

PS: Ich habe keine Angst vor Mathe und bin bei Übungen nicht so leicht frustriert, aber ich bevorzuge einige Intros / Texte, in denen Sie Code ablegen können, da Sie auf diese Weise das Feedback sofort erhalten.

Antworten:


6

F # ist ein guter Anfang, Sie sollten mit Haskell weitermachen und sich auf jeden Fall über Lambda-Kalkül und die oben erwähnten Lambda-Papiere informieren.

Die Verwendung einer hybriden Sprache (Clojure, Scala, OCaml, ...) kann hilfreich sein, wenn Sie einen OO-Hintergrund haben, aber ich denke, wenn Sie die funktionale Programmier-Denkweise wirklich verstehen wollen, sollten Sie sich lieber für die entscheiden echtes Ding (Haskell, Lisp, ...).


danke - ich werde mich natürlich an F # halten (ich kann das im Produktionscode verwenden ...) und ich werde versuchen, mehr über haskell zu lernen - aber das ist schwieriger, weil ich es ziemlich schwer finde, andere Dinge als Konsolenanwendungen in haskell zu tun (noch). - Schema mag nett sein (hatte mal eine kurze Episode in Lisp), aber OCaml ist fast das gleiche wie F # (glaube ich)
Carsten

@ CarstenKönig: Es gibt eine ganze Reihe sehr interessanter Projekte, bei denen Sie sich keine Gedanken über eine Benutzeroberfläche machen müssen. Eine großartige Option ist die Arbeit an einer Programmiersprache: Das Schreiben eines einfachen Schema- oder Prolog-Interpreters in Haskell ist eine großartige Übung und führt ein glückliches Leben in der Befehlszeile.
Tikhon Jelvis

4

Ich empfehle Ihnen, diese drei Bücher zu lesen, wenn Sie Zeit haben:

Diese drei Bücher werden Ihr Verständnis der funktionalen Programmierung im Allgemeinen bereichern.


ATM-Zeit ist kein Problem - und ich werde mir Zeit nehmen, wenn ich abends sowieso die Energie finde ... es mag langsam sein, aber normalerweise kann ich viel lesen. Natürlich werde ich bei solchen Büchern langsam kriechen ... danke (leider scheint der letzte vergriffen zu sein ... ich kann es nicht ertragen, vom Bildschirm aus zu lesen)
Carsten

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.