2011-10-25 7 views
1

私はPrologとロジックパラダイム開発の新人ですが、これは私のアプリケーションで私を助けることができると思います。私の最初の疑問は、私が言語でこれをすることができることです。Prologとは何が可能ですか?

私はいくつかのテキスト処理/自然言語処理を行っています。私は自分のコードがJavaより論理的な言語でより明確で簡単になると思っています(これは私が使用しているもので、Prologと統合します)。

私の最初の目標は、文字列(英字、数字、数字など)のchar型を発見することです。私は4つの引数、hasLetter、hasDigit、hasSymbol、hasPunctuationを持っています。

私はこの4つの属性に基づいてタイプを返すか、または単一のテストのみでisDigit(),isAlphabetic()などのthinkgsを返す1つのメソッドdetermineType()を持つことができますか?

+3

「命令的」から「論理的」な考えに移行していないようです。 Prologでは、戻り値は決してありません。述部が成功したか失敗したかによって得られるものです。述語の引数は、入力または出力ではなく、統一される変数です。統一は、Prologで結果を「返す」唯一の方法です。ちょうど私が価値がある私の2セントを投げると思った。 – Enigmativity

+0

telekinisis、分子操作、予感? xDあなたが使用しているプロローグシステムのライブラリをチェックする必要があります。通常、隠されたアイテムがたくさんあります。 –

答えて

3

各文字のカテゴリまたは「タイプ」は、文字をそのタイプに関連付ける関係です。述語を使用してPrologでコード化することができます。そのような述語の意味のある名前は、例えば: "character_type(C、T)"である。 SWI-Prologでは、ライブラリ述語char_type/2とcode_type/2を調べて、この情報を取得します。キャラクタのタイプを取得するために(バックトラック時に、代替解が生成されるように)、キャラクタが指定されたカテゴリに属する​​かどうかをテストするために使用できます。言語処理のために、明確な文法(DCGs)が役に立つかもしれません。

関連する問題