2011-01-10 12 views
0

私はPrologでDCGを使用して失敗することに慣れようとしています。Prolog:シンプルなDCG a^n b^n

言語を受け入れるための一連の文法規則をどのように定義できますか?

など。 aaaabbbbまたはabなど...

ありがとうございました。

答えて

5
ab --> []. 
ab --> [a], ab, [b]. 
+0

ありがとうございます。あなたのルールでは、それはab([a、a、a、b、b、b]、[])を受け入れます。私が期待するように、それがab(aaabbb、[])を受け入れるようにする良い方法があります。 aaabbbをauxilary述語を使って[a、a、b、b、b]に分解すること以外は?ありがとうございました :)。 – ale

+0

「受け入れ」に関する8分の制限が解除されたときに受け入れます:)。 – ale

+0

あなたはそれをリストに分解する必要があります。 DCGは原子上では機能しません。 –