3

近い将来、就職の面接で屈辱を与えたくないので、この質問をしています。

私は、プログラミングの際に多くの関数を 1 か所で作成するのが好きで、クラスの作成やエンティティーの状態の処理はできるだけ避けています。私は関数型プログラミングが好きで、これがプログラミングにおける私のスタイルまたは好みであると言えますか?それとも、F# や Haskell のような関数型プログラミング言語を使用する必要がありますか?


http://en.wikipedia.org/wiki/Comparison_of_programming_paradigmsによると、私は実際にオブジェクト指向言語で命令型プログラミングを行っています。

4

4 に答える 4

5

いいえ。

関数型プログラミングの特徴は次のとおりです。

  • 状態が変化するオブジェクト(またはその他のもの)を回避する
  • 可変データと可変データ構造の回避(より簡単に言えば、変数は値を変更しません)
  • すべて(またはほぼすべて)の関数は純粋です。

多くの関数型言語もパターンマッチングと強い型付けに依存していますが、これらの機能を欠いている言語で関数型スタイルでプログラミングすることは可能です。

関数型プログラミングの詳細については、この分野の紹介を読むことを検討してください(たとえば、Learn You a Haskell for Great Good)。

于 2012-07-23T10:30:19.043 に答える
4

いいえ。すべてのメソッドを 1 つのクラスに配置すると、手続き型プログラミングのファンになります。つまり、アンチ OOP になります。

ほとんど/すべての変数/引数/関数がまたはである場合、これらの修飾子を適用できる場合、C# で関数型プログラミングを行っていると主張できます。constreadonly

于 2012-07-23T10:34:41.267 に答える
2

あなたが説明しているのは、機能的なプログラミングではなく、より手続き型のプログラミングだと思います。

于 2012-07-23T10:31:58.407 に答える
1

Afaikは、oop言語で関数型プログラミングを行うことができます。私が正しく理解している場合、機能とは、関数に必要なすべてのものを渡し、結果を再度取り出して、次の呼び出しなどのために何も保存しないことを意味します。つまり、クラスとメソッドはステートレスです。

于 2012-07-23T10:29:32.493 に答える