无上下文语法转换为Prolog?

3

根据你对翻译和二型语法的了解,回想一下以下定义为example:

G = {N, T, S, P} 
T = {x, y, z} 
N = {A, B, C} 
S = A 
P = 
< A> ::= x<B>
< A> ::= x<C> 
< B> ::= x<B> 
< B> ::= y 
< C> ::= x<C> 
< C> ::= z

编写Prolog规则来表示这个语法。使用以下列表进行测试:
[x,x,x,z]. 
[x, x, y]. 
[x]. 
[x, y, z]. 
[ ] 

有人能帮我解答这个问题吗?我不知道如何在Prolog中表示,因为网络上的大多数示例都非常不同!

谢谢!

1个回答

1

只是一个提示,为每个生产添加一个条款来完成您的任务。

'A' --> [x], 'B'.
...

用这种方式进行测试

?- phrase('S', [x,x,x,z], []).

这里没有理由使用phrase/3代替phrase/2 - false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接