2016-04-24 13 views
1

私はC#の開発者であり、「必須」とは対照的に「機能的に」考える方法について頭を悩ませてきました。C#で静的関数を使用しているのは、関数型プログラミングの一種ですか?

機能は、通常、ステートレスとして定義されています。ここでは、どのように行う必要があるかを記述します。静的でステートレスな関数をたくさん持つようにコードを作成する方法は、関数型プログラミング。

実行する必要があることを記述する関数プログラミングでも、最終行は魔法では行かないので、実行する必要があるのはどこかでコード化する必要があります。

私はこのようにコーディングすることによって機能的に考えていますか?

+0

あなたは_no副作用の観点から考える必要があります。状態は副作用の単なる一形態にすぎません。関数型プログラミングでは戻り値が必要ですが、静的メソッドでは戻り値は必要ありません。 – Enigmativity

答えて

1

スタンドアロン機能を許可しないC#やJavaなどの言語があります。つまり、すべての関数がクラスに属している必要があります。

機能プログラミングでは、参照透過性と副作用が欲しくなりました。つまり、オブジェクトの状態にアクセスしたくないということです。したがって、関数を非静的にすることは意味がありません。

スタンドアロン機能をエミュレートするために、スタティック機能を使用するのに最適な方法です。それでも、関数が可変静的クラス属性にアクセスしていないことを確認する必要があります。

関連する問題