来月は、関数型プログラミング言語を採用する新しい R&D プロジェクトに取り組む予定です (私は Haskell に投票しましたが、現在は F# の方が多くのコンセンサスを得ています)。現在、私はそのような言語でしばらく遊んで、それらを使用していくつかのコマンド ライン ツールを開発しましたが、これはかなり大きなプロジェクトであり、関数型プログラミングの知識と技術を向上させようとしています。私もこのトピックについてたくさん読んだことがありますが、関数型プログラミングの世界でアンチパターンを文書化した本やリソースを見つけることができません。
さて、アンチパターンについて学ぶことは、他の賢い人々の失敗について学ぶことを意味します.OOPでは、私はそれらのいくつかを知っており、一般的にアンチパターンである何かが私のニーズに完全に適合する場合、賢明に選択するのに十分な経験があります. しかし、他の賢い人たちから学んだ教訓を知っているので、私はこれを選ぶことができます.
したがって、私の質問は次のとおりです。関数型プログラミングに文書化された アンチパターンはありますか? 今まで、私の同僚は皆、何も知らないと言っていましたが、その理由を述べることはできませんでした.
- はいの場合、信頼できる情報源 (カタログ、エッセイ、書籍、または同等のもの) へのリンクを 1 つ含めてください。
- いいえの場合は、適切な定理によってあなたの答えをサポートしてください。
この質問をリストに入れないでください。これはブール値の質問であり、答えを評価するために証明が必要なだけです。たとえば、あなたが Oleg Kiselyov の場合、「はい」で十分です。そのトピックに関するあなたのエッセイを誰もが見つけることができるからです。それでも、寛大にお願いします。
私が探しているのは、単純な悪い習慣や悪い習慣ではなく、正式なアンチパターンであることに注意してください。
アンチパターンに関するリンクされたウィキペディアの記事から:
...実際のアンチパターンを単純な悪い習慣、悪い習慣、または悪い考えと正式に区別するには、少なくとも2つの重要な要素が存在する必要があります。
- 最初は有益に見えるが、最終的には有益な結果よりも悪い結果をもたらす行動、プロセス、または構造の繰り返しパターン、および
- 明確に文書化され、実際の実践で証明され、再現可能な代替ソリューションが存在します。
さらに、「文書化された」とは、権威ある著者またはよく知られている情報源からのものを意味します。
私が慣れている言語は次のとおりです。
- Haskell (ここで、コードがコンパイルされれば機能すると本当に考え始めています!)
- スカラ
- F#
しかし、他の関数型言語で文書化されているアンチパターンに関する知識を適応させることもできます。
私は Web で多くのことを検索しましたが、私が見つけたすべてのリソースは、OOP または関数レイアウト (関数の先頭に変数を定義するなど...) に関連しています。