Prolog语法规则:额外参数与测试的运用
1. 目标指定与额外参数添加
在将解析程序表示为语法规则后,需要指定想要其处理的目标。由于已知语法规则如何转换为普通Prolog,因此可以在Prolog中表达目标并自行添加额外参数。
1.1 手动添加参数
要添加的第一个参数是要处理的单词列表,第二个参数是剩余的列表,通常为空列表 []
。例如:
?- sentence([the,man,eats,the,apple], []).
?- noun_phrase([the,man,sings], X).
1.2 使用内置谓词 phrase
部分Prolog实现提供内置谓词 phrase
,它会自动添加额外参数。 phrase
的定义如下:
phrase(P, L) is true if: list L can be parsed as a phrase of type P.
可以使用 phrase
替代手动添加参数的方式,例如:
?- phrase(sentence, [the,man,eats,the,apple]).
不过, phrase </