10

奇妙に聞こえるかもしれませんが、Microsoft Visual F# が参入しているこの新しい世界について 1 つ知りたいことがあります。この言語には、解析、関数型プログラミング、構造化プログラミングなど、さまざまな用途があります。しかし、人工知能についてはどうでしょうか。

Fuzzy Logic のアプリケーションはありますか? F# はファジー ロジック アプリケーションに使用するのに適した言語ですか?

大学ではPrologや類似言語を勉強しています。Prolog は、(述語と事実を利用して) 非常に単純で短い式で複雑なクエリを作成できます。F# はこれを行うことができますか?

前もって感謝します。

4

2 に答える 2

8

ファジーロジック。F# は、ファジー論理計算をすぐに実装するための型を提供しませんが、このドメインで F# を使用することは確かに可能です。F# の簡潔さとカスタム オーバーロード演算子を定義する機能により、ファジー ロジックに基づくコードは非常に優れたものになります。ざっと検索したところ、F# でファジー ロジックを実装している記事がいくつか見つかりました。

プロローグは少し異なる質問です。Prolog の強み (および弱み) は、言語に直接組み込まれたバックトラッキングがあるという事実から来ています。これは、バックトラッキングに基づく検索アルゴリズムの実装には非常に適していますが、制限もあります。

F# はバックトラッキングを直接サポートしていませんが、再帰(F# と Prolog の両方の主要な制御フロー メカニズム) を使用して、バックトラッキングに基づくアルゴリズムを作成するのは非常に簡単です。

また、 F# で論理プログラミング用のドメイン固有言語を実装することもできます。これは、F# 内に Prolog のようなものを実装し、F# でこのミニ言語を使用して検索アルゴリズムを作成することを意味します (必要に応じて他の F# 機能を使用することもできます)。同様の問題に関する詳細については、この質問を参照してください。

于 2010-11-29T00:34:13.960 に答える
3

F# は、計算式/モナドや引用符など、優れた言語機能を備えた汎用言語です。C# とほぼ同じ能力を持っていると想定できます。

多くの実装済みライブラリが組み込まれている Matlab や R とは異なります。Fuzzy Logic ライブラリやその他の AI アルゴリズムをゼロから実装する場合、F# はその言語機能によって作業が容易になるため、非常に優れた言語です。

ただし、ファジー ロジック ライブラリを使用するだけの場合は、他の言語または特殊なシステムを使用する方が適切です。一般に、F# や .Net にはこの点で高品質のライブラリがないためです。

于 2010-11-29T01:44:34.610 に答える