2011-01-10 6 views
0

Ich habe versucht, mich daran zu gewöhnen, DCGs in Prolog zu verwenden und fehlgeschlagen.Prolog: Einfaches DCG a^n b^n

Wie kann ich einen Satz von Grammatikregeln definieren, um die Sprache a^n b^n zu akzeptieren?

z. aaaabbbb oder ab etc ...

Danke :).

Antwort

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

Vielen Dank. Mit Ihren Regeln akzeptiert es ab ([a, a, a, b, b, b], []). wie ich es erwarten würde, aber gibt es einen guten Weg, es zu akzeptieren, ab (aaabbb, []). anders als explodieren aaabbb in [a, a, a, b, b, b] unter Verwendung eines Hilfsprädikats? Vielen Dank :). – ale

+0

Akzeptiert, wenn die 8-minütige Beschränkung auf "akzeptieren" aufgehoben wird :). – ale

+0

Sie müssen es in eine Liste explodieren. DCGs funktionieren nicht an Atomen. –