Ich bin auf der Suche nach einem Buch, das die funktionale Programmierung auf zugängliche Weise erklärt. Ich würde auch eine vorziehen, die nicht zu langweilig ist und keine esoterische Sprache verwendet.
Idealerweise werden Beispiele verwendet, die Situationen veranschaulichen, in denen die funktionale Programmierung zu eleganteren oder einfacheren Lösungen führt als zwingende Ansätze.
Ich habe ein angemessenes Maß an Programmiererfahrung, aber keine Kenntnisse in funktionaler Programmierung. Vielen Dank für alle Vorschläge
books
functional-programming
Antonio2011a
quelle
quelle
Antworten:
Ich würde am besten mit " The Little Schemer " beginnen (und vielleicht " The Reasoned Schemer " danach).
Wenn Sie das Schema für zu esoterisch halten oder wenn Sie Javascript mögen, hat Douglas Crockford viele der Übungen in Javascript übersetzt: http://javascript.crockford.com/little.html
Wenn Sie C # mögen , ist " Real-World Functional Programming " von Tomas Petricek ein ausgezeichneter Ausgangspunkt. Es dient auch als nette Einführung in F #.
quelle
Wenn Sie statisch typisierte Sprachen und [Klammern] mögen:
Haskell ist zwar ziemlich auf die Reinheit des Programmierparadigmas bedacht, hat aber eine der besten Einführungen in eine Sprache, die ich bisher in Form von "Learn You a Haskell For Great Good!" Gesehen habe. Das Buchformular ist optional, da die Website kostenlos ist, aber dies ist ein Autor, von dem ich mich überhaupt nicht beeindruckt gefühlt habe. Real World Haskell ist gut, wird aber als Fortsetzung von [Learn..Good] wirklich besser verstanden. RWH ist auch frei mit wahlweise freigestelltem papery Güte.
Von Haskell aus können Sie problemlos auf andere ML-Varianten wie F # oder OCaml umsteigen, die beide häufiger verwendet werden. Für die Blutungsgrenze ATS .
Wenn Sie möchten (und Dynamic_Typing-Klammern):
Schema ist das funktional orientiertere der beiden Haupt-Lisp-Dialekte, das kleiner und reiner ist als Common Lisp, aber in der Industrie weniger verbreitet ist. Ich persönlich mag die Struktur und Interpretation von Computerprogrammen, aber es ist ein ziemlich theoretisches Buch, das Sie zu einem besseren Programmierer macht, obwohl es ein bisschen schwer zu schlucken ist.
Wenn Sie es vorziehen, Common Lisp zu verwenden, scheinen entweder Practical Common Lisp oder Land of Lisp gute Investitionen zu sein, das erste ist kostenlos online und das zweite ist relativ billig und vor allem (für manche) spielorientiert. Es ist mächtiger, wenn auch weniger rein als Schema.
Von diesen können Sie nach Belieben zu Clojure erweitern . Es ist Lisp für die JVM, daher ist es einfacher bereitzustellen und besser in der Lage, sich gegen die Anschuldigungen zu verteidigen, "akademisch" zu sein. Clojure kann auf .NET implementiert werden und auch auf Javascript umsteigen. Versuchen Sie für native .NET IronScheme .
Sie können den Unterschied auch aufteilen und beides gleichzeitig lernen, indem Sie in 48 Stunden in Haskell ein Schema schreiben .
quelle
Meine Lieblingsquelle ist die sanfte Einführung in Haskell . Ich habe einen Teil von Learn you a Haskell und O'Reilly Real-World Haskell und Simon Thompsons Craft of Functional Programming gelesen , aber ehrlich gesagt geht es mir mit dem sanften Intro besser. Es ist wie bei Haskell's K & R: ein dünnes Dokument, das von den Schöpfern der Sprache erstellt wurde. Nicht wortreich, nicht bevormundend, aber auch nicht versuchend, Sie mit ihrer Gelehrsamkeit zu überwältigen.
quelle
http://hop.perl.plover.com/ enthält ein Buch, das Sie kostenlos herunterladen können. Es wird erklärt, wie viele Funktionstechniken in Perl verwendet werden.
Das meiste, was es sagt, kann sehr einfach in JavaScript, Ruby oder Python übersetzt werden.
quelle
Ich lerne gerade selbst funktionale Programmierung. Allerdings lerne ich mit Haskell.
Hier sind ein paar Online-Bücher (Sie können diese auch in Hardcover-Iirc kaufen)
Haskell ist nicht esteroisch und wird mehr Mainstream (möglicherweise nicht so Mainstream wie LISP oder Erlang). Es ist jedoch eine reine funktionale Sprache und zwingt Sie, das Paradigma der funktionalen Programmierung zu erlernen. Im Gegensatz zu einem halb imperativen halb funktionalen Ansatz, bei dem Sie eine nicht rein funktionale Sprache verwenden.
Die Leute haben mit haskell WebServer, Bittorrent Clients und einige reale Anwendungen entwickelt. Ich persönlich benutze es jedoch, um die Konzepte zu lernen und sie dann auf C # & F # anzuwenden, was bisher fantastisch funktioniert.
Genießen.
quelle
Ich habe mehrmals gute Dinge über "Struktur und Interpretation von Computerprogrammen" gehört. Da es sich um ein echtes Buch handelt, können Sie es auch in Papierform herunterladen (siehe http://www.amazon.de/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871) .
Es ist hier kostenlos verfügbar http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) und es gibt sogar Videos der Vorträge ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )
quelle
Programmieren in Haskell
Sie könnten sich nicht für den Kauf entscheiden, aber die Homepage des Buches (siehe oben) enthält Links zu 13 Channel 9-Videos zur Haskell-Programmierung.
quelle