関数型プログラミングをアクセシブルな方法で説明する本を探しています。また、私はあまり退屈ではなく、難解な言語を使用しないものを好むでしょう。
理想的には、関数型プログラミングが命令型アプローチよりもエレガントでシンプルなソリューションにつながる状況を示す例を使用します。
プログラミングの経験はある程度ありますが、関数型プログラミングの知識はありません。提案をありがとう
関数型プログラミングをアクセシブルな方法で説明する本を探しています。また、私はあまり退屈ではなく、難解な言語を使用しないものを好むでしょう。
理想的には、関数型プログラミングが命令型アプローチよりもエレガントでシンプルなソリューションにつながる状況を示す例を使用します。
プログラミングの経験はある程度ありますが、関数型プログラミングの知識はありません。提案をありがとう
回答:
私は「The Little Schemer」(そしてその後、おそらく「The Reasoned Schemer」)で始まると思います。
Schemeが難解すぎると思う場合、またはJavascriptが好きな場合、Douglas Crockfordは多くの演習をJavascriptに翻訳しています:http : //javascript.crockford.com/little.html
C#を楽しんでいるのであれば、Tomas Petricekによる「Real-World Functional Programming」が出発点として最適です。また、F#の入門書としても役立ちます。
静的に型付けされた言語と[ブラケット]が好きな場合:
Haskellはプログラミングパラダイムの純度にかなり重きを置いていますが、「Learn Has a Haskell For Great Good!」という形でこれまで見たことのない言語を紹介するのに最適です。ウェブサイトは無料であるため、書籍の形式はオプションですが、これは私がまったく圧倒されるとは思わなかった著者の1人です。現実世界のHaskellは優れていますが、[Learn..Good]へのフォローアップとして実際に採用したほうがよいでしょう。RWHは、オプションの紙質の良さで無料です。
HaskellからF#やOCamlのような他のMLバリアントに簡単に移行できます。どちらもより広く使用されています。最先端のATS向け。
必要な場合(およびDynamic_Typing括弧):
Schemeは、2つの主要なLisp方言の機能指向であり、Common Lispよりも小さく純粋ですが、業界ではあまり広く使用されていません。個人的にはコンピュータープログラムの構造と解釈が好きですが、それはかなり理論的に重い本ですが、飲み込むのが少し難しいと、より良いプログラマーになるでしょう。
Common Lispを好むなら、Practical Common LispまたはLand of Lispのどちらかが良い投資のように思えます。1つ目は無料のオンラインで、2つ目はかなり安価で、もっと重要な(一部の)ゲーム中心です。Schemeよりも純粋ではありませんが、より強力です。
これらから、必要に応じてClojureに展開できます。JVM用のLispであるため、デプロイが容易であり、「アカデミック」であるという告発に対する防御力を高めることができます。Clojureは.NETにデプロイでき、Javascriptにもクロスオーバーできます。ネイティブ.NETの場合は、IronSchemeを試してください。
Haskell で48時間でWrite Yourself a Schemeを使用して、違いを分割して一度に両方の種類を学ぶこともできます。
私のお気に入りのソースはHaskellの優しい紹介です。Learn you a HaskellとO'Reilly Real-World HaskellとSimon ThompsonのCraft of Functional Programmingの一部を読みましたが、正直なところ、穏やかなイントロでより良くやっています。それは、HaskellのK&Rのようなものです。言語の作成者によって作成された薄いドキュメントです。言葉遣いも愛用もせず、彼らの博学であなたを圧倒しようともしない。
http://hop.perl.plover.com/には、無料でダウンロードできる本が含まれています。Perlで多くの機能的なテクニックを使用する方法を説明します。
それが言っていることのほとんどは、非常に簡単にJavaScript、RubyまたはPythonに翻訳できます。
私は現在、関数型プログラミングを自分で学んでいます。ただし、Haskellを使用して学習しています。
オンラインブックは次のとおりです(ハードカバーiircでも購入できます)。
Haskellはエステルではなく、より主流になりつつあります(LISPやErlangほど主流ではありません)。ただし、これは純粋な関数型言語であり、関数型プログラミングのパラダイムを習得する必要があります。純粋に関数型ではない言語を使用して得られる、半分の命令型の関数型のアプローチとは対照的です。
人々は、haskellを使用してWebServer、Bittorrent Client、およびいくつかの実際のアプリケーションを開発しました。しかし、私は個人的にそれを使用して概念を学習し、それを今まで素晴らしい動作をしているC#とF#に適用しています。
楽しい。
「コンピュータプログラムの構造と解釈」について良いことを何度か聞いたことがあります。本書ですので、Paperでも入手できます。http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871を参照してください。
ここは自由に利用可能ですhttp://mitpress.mit.edu/sicp/(http://mitpress.mit.edu/sicp/full-text/book/book.html)や講義のも、ビデオがあります(のhttp: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/)
購入しないかもしれませんが、本のホームページ(上記参照)はHaskellプログラミングに関する13のチャンネル9ビデオにリンクしています。