10

私は数年前からコーディングを行っていますが、それほど複雑なことはありません。C++は私が最もよく知っているものです。私は最近、Paul Grahamのサイトに出くわし、ホラーをコーディングしました。そして今ここにいます。

関数型プログラミングの「方法で自分自身を啓発する」ために私は何を学びますか?Haskell、Scheme、それともCLisp?

4

6 に答える 6

18

関数型プログラミングに興味がある場合、Haskell はそのリストで唯一の純粋関数型言語です。Common Lisp は機能の弱い混合パラダイム言語であり、Scheme は機能がより強力ですが、それでも純粋ではありません。Lisp が興味深い理由は他にもありますが、Haskell はほとんど関数型プログラミングの最先端です。

ちなみに、私が Haskell のようなより強力な関数型言語を推奨する理由は、「関数型プログラミングの学習」の大部分が、プログラムを別の方法で考える方法を学習することだからです。あなたの言語が命令的に書くことを自然に感じさせるなら、その考え方に陥り、それを行う別の方法があることに決して気付かないのはあまりにも簡単です.

于 2010-03-12T22:25:23.707 に答える
5

それがあなたの主な関心事であるならば、3つのうち、Schemeは全体的に最も単純だと思います。SICPはSchemeを使用しており、それ自体が機能的な方法をプログラムする方法を学ぶための優れたリソースです。

ただし、Common Lispには、強力なエラー処理(例外よりも強力)、マルチメソッド、アスペクト指向プログラミングのサポートなど、非常に表現力豊かな多くの高度な機能があります。

あなたは1つから始めるかもしれませんが、最終的には、多くの言語を勉強する必要があります。

于 2010-03-12T10:57:37.033 に答える
5

3つすべてが良いですが、人によって異なります。

haskell を選択する場合、これは優れたリソースです。learnyouahaskell現実世界の haskell

于 2010-03-12T11:25:18.290 に答える
4

関数型プログラミングの「方法で自分自身を啓発する」?

Haskell は関数型スタイルの最も強力な模範であり、純粋な関数型プログラミング (副作用なし)、強力な静的型付け、およびマルチコア並列処理に重点を置いた実用的な実装を強調し、同時に巨大なコミュニティ (約 2000 のライブラリがhttp:/ /hackage.haskell.org、および多くのオンライン リソース)。

プログラミングに対する人々の考え方を再教育することで有名です。

しかし、これはアドボカシーであり、有用なスタックオーバーフローの質疑応答セッションではありません。何を学びたいかは自分で決めなければなりません。

于 2010-03-13T04:48:55.920 に答える
4

他の答えが言うように、3つすべてが良いです。

しかし、Lisp を選択する場合は、 Clojureを選択することをお勧めします。これは、おそらくその最新の生まれ変わりです。

于 2010-03-12T13:08:45.447 に答える
3

F#、ML、または OCaml について聞いたことがありますか? これら 3 つの言語は ML ファミリーに属します。

F#は Microsoft がサポートする新しい ML ダイアレクトであり、Visual Studio 2010 に同梱されます。F# (または他の ML 言語) の良い点は、最初に命令型コードを記述し、適切な関数型スタイルを徐々に学習できることです。

Project Euler #2用に私が書いた例を次に示します。私が最初にそれをしたとき、私は命令型のスタイルを使用しました。その後、強力な関数型プログラミングの概念である遅延シーケンスの使用方法を理解しました。

于 2010-03-13T07:18:36.797 に答える