Boost.phoenixをプロジェクトに統合するために、関数型プログラミングを学びたいと思っています。
関数型プログラミングの概念をそのコンテキストで簡単に適用できる方法で説明する本を見つけることができるように、どの言語が最も似ているか... haskell と ocaml は似ていますか?
あるいは、Boost.phoenix に適用できる、一般的な用語で書かれた優れた関数型プログラミングの本はありますか?
Boost.phoenixをプロジェクトに統合するために、関数型プログラミングを学びたいと思っています。
関数型プログラミングの概念をそのコンテキストで簡単に適用できる方法で説明する本を見つけることができるように、どの言語が最も似ているか... haskell と ocaml は似ていますか?
あるいは、Boost.phoenix に適用できる、一般的な用語で書かれた優れた関数型プログラミングの本はありますか?
Phoenix は、C++ での関数型プログラミング (FP) を可能にします。したがって、最も相乗効果のある言語は C++ になります。
関数型プログラミングを独自の用語で学習したい場合は、Haskell や Scheme などの言語を選択することをお勧めします。
http://www.boost.org/doc/libs/1_51_0/libs/phoenix/doc/html/index.html
私はPhoenixの経験はありませんが(ドキュメントをざっと読んだことがあります)、C ++、OCaml、Haskellの経験があるので、そこで手助けできるかもしれません。
まず、関数型プログラミングを学ぶと、C ++にきれいに翻訳されないことがわかります。実際の関数型言語で行う場合よりも、混乱して冗長になります。それでもなお、より多くのツールと異なる考え方を提供するため、テクニックを学ぶ価値はあります。
haskellとocamlは似ていますか?
どちらもMLの影響を受けているため、非常によく似ています(まあ、ちょっと、コメントを参照してください)。OCamlは、命令型のOO機能であるため、C ++に近いですが、Haskellはより機能的で、より心を曲げ、より多くのリソースを備えているため、Haskellを学ぶことをお勧めします。MLのような言語の興味深い点は、テンプレートメタプログラミングに非常にうまく変換されることです。
あるいは、Boost.phoenixに適用できる一般的な用語で書かれた優れた関数型プログラミングの本はありますか?
フェニックスのドキュメントはかなり標準的な用語を使用しているようです。混乱を招く可能性があるのは、「functor」という単語の使用です。C++では関数オブジェクトを意味しますが、Haskellのような言語では別の意味です。
ここにあなたが探すべきいくつかの用語があります:
関数型プログラミングの優れた入門書であるため、私が読むことをお勧めする2冊の無料の本を次に示します。
私は Phoenix についてあまり知りませんが、岡崎の Purely Functional Data Structures は、関数型スタイルでプログラムを作成する方法を多かれ少なかれ一般的な外観にすることができると思います。