2012-02-17 13 views
2

C#プロジェクトでF#プロジェクトをアセンブリとして使用できますか?C#でF#をdllとして使用

「はい」の場合は; F#は計算のためのC#よりも高速です(そうではありませんか?)、コードの計算部分がF#でメインプロジェクトがC#の場合、アプリケーションが高速になりますか?

+4

1はい、可能です。 2、それは、特にF#とC#の開発者の流暢性に依存します。 3、それは同様に依存します。 – pad

+0

@Heinzi:C#については、本当のスピードではないかもしれないと思いました!もう少し詳しく説明できますか? – mrbm

+0

@mrbm:なぜ「それは本当のスピードを持っていないかもしれない」と思いますか? – Heinzi

答えて

8

はい、F#プロジェクトをC#プロジェクトのアセンブリとして使用することは可能です。

いいえ、F#はそのものではありません。はC#より高速です。どちらも同じタイプの中間言語にコンパイルされ、同じ.netフレームワークで実行されます。 F#のいくつかの特定の機能を使用して、C#よりも高速にアルゴリズムを書くことができるかもしれませんが、それはアルゴリズムに大きく依存します。

+0

私はそれを得ていない?両方とも同じタイプにコンパイルされています!つまり、F#をより速くするアルゴリズムだということです!そして、このアルゴリズムはF#のようなC#で書くことはできません!私に例を挙げてもらえますか? – mrbm

+2

F#とC#とすべての.net言語(私は思う)は同じ中間言語にコンパイルされています。したがって、スピードの向上は、あなたが言語で書いたコードから来ているのであって、あなたがC#またはF#で書いているという事実ではありません。 C#ができることはF#が行うことができ、その逆も可能です(私は、いくつかのエッジケースかもしれません)。特定のアルゴリズムをある言語または他の言語で実装する方が簡単かもしれないので、どちらも高速である可能性がありますが、ある特定の言語ではもっと簡単かもしれません。 –

1

はい、できますし、意味があります。私は自分のプロジェクトでこのアプローチを個人的に使用しています。 しかし、C#の代わりにF#で計算を表現しても、コードの実行速度が遅くなることはありません。 もちろん、関数型プログラミングに精通している方は、計算コードをより簡潔で洗練された方法で書くことができます。これにより、コードのテスト、維持、理解が容易になります。

2
  • はい、F#が.NET言語であり、対応のDLLを提供します

  • F#が速くないです。 F#は、特定の種類の問題を表現するためのより良い方法を提供します。したがって、バグの量を減らし、生産性を向上させます。 F#は、ステートレスでスケーラビリティの高いプログラミングモデルを奨励し、データと関数を明確に分離します。

関連する問題