web-dev-qa-db-ja.com

F#とC#の混同

私は関数型プログラミングとC#/ F#にかなり慣れていません。

私には何が不明確ですか:C#やF#で関数型プログラミングを実行できますか?または、それは次のようなものです、あなたはいくつかのOOコードをC#で書き、いくつかのFPコードをF#で書き、それらを一緒に使用しますか?

18

F#とC#はどちらも.NET言語です。つまり、どちらもILコードにコンパイルされます(Javaバイトコードに似ています)。

ILの特定のサブセット(CLS準拠と呼ばれる-all .NET言語と互換性のある機能のみを使用することを意味します)を使用するようにコードを記述した場合、1つの.NET言語で記述されたライブラリを使用できます他のすべての.NET言語。


現在、C#はオブジェクト指向言語として作成されました-時間の経過とともに進化し、いくつかの関数型機能を備えています。つまり、C#で関数型スタイルで記述できます。

F#は関数型言語として作成されました。それは純粋ではなく、canには副作用があります(特に、基本クラスライブラリを含む他の.NET言語で書かれたライブラリを使用する場合)。


どの言語でどのスタイルを使用するかについて厳密な規則はありませんが、機能コードにF#を使用し、OOコードにC#を使用することは、どちらの言語が作成され、貸与されているかという理由から意味があります。それ自体に。

また、相互運用性を考慮してコードが記述されていれば、それらを一緒に使用することもできます(難しい要件でもありませんが、簡単に実行できます)。

22
Oded