1
DCGで次のような過渡関数を作ることはできますか?または、DCGルールと組み合わせることはできますか?DCGの過渡関数
genx(A,B) :- gen(A,B).
genx(A,C) :- gen(A,B), genx(B,C).
gen(a,b).
gen(b,c).
私は、私は正確にやろうとしているかを説明します:
私はこの文法を持っている場合:
noun_phrase(D,N) --> det(D), noun(N).
noun(n(cat)) --> [cat].
私はN
にnoun(N)
にしたい場合のように、いくつかの制限を作りたいです動物である。 undestandのおかげ
回答ありがとうございますが、動作しないようです!あなたはもっと明確な答えを出すことができますか? – user2598997
@ user2598997 - プロローグを使用していますか?私はgprologとswi-prologで作業しているのを見ています。 not listが問題であれば、 'gen([a]、[b])'と 'gen([b]、[c])の中の事実を変更することができます。 'genx([a]、[c])'は真を返します。 – max66
私はswi-prolog(オンラインvserion)を使用しています。 genx(A、B)→gen(A、B)。 genx(A、C)→gen(A、B)、genx(B、C)。 gen([a]、[b])。 gen([b]、[c])。プロシージャ 'genx(A、B) 'が存在しません。 – user2598997