1

プロローグで定義されたリレーション内にリレーションを含めることはできますか?

以下のように定義された関係があるように:

relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.

CctypeInt と Ru1 の両方に依存するもう 1 つの変数があります。

だから私は次のようなことを考えています

relation(cctypeint,relation(ru1,...,ru2))

これは可能ですか?

4

1 に答える 1

3

関係は、Prolog の述語によって定義されます。プログラムテキストの述語内で述語を定義するための組み込みの構文方法はありません (ただし、たとえば用語展開を使用して行うことができます)。そうする理由はほとんどないようです。個別の述語を記述して参照するだけです。もちろん、用語を入れ子にすることもできます。つまり、他の用語のサブ用語としての用語です

あなたはどういう意味ですか

relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.

? これは、述語 (,)/2 について何かを述べている節ですが、これが意図されているとは思えません。一方、もちろん、次のような Prolog 用語を構築して使用することもできます。

relation(cctypeint,relation(ru_1,...,ru_n))

プログラムでデータを表現します。

于 2012-04-12T11:24:16.380 に答える