Prolog 语法

2024 年 8 月 29 日 | 阅读 3 分钟

Prolog 的语法如下

符号

使用以下真值函数符号,Prolog 表达式由这些符号组成。这些符号的解释与谓词演算中的解释相同。

英文谓词演算Prolog
If-->:-
~
V;
并且^,

变量

变量是一个字符串。该字符串可以是小写或大写字母的组合。该字符串还可以包含以 an 下划线或大写字母开头的下划线字符。形成名称和谓词演算的规则相同。

例如

事实

事实就像一个谓词表达式。它用于提供关于问题的声明性语句。在 Prolog 表达式中,当出现变量时,它被假定为全称量化的。事实以 **head** 的形式指定。Head 称为子句头。它将以与用户在提示符处输入的相同方式接收。

例如

查询

在 Prolog 中,查询是询问程序其数据库中可用信息的操作。当 Prolog 程序被加载时,我们将得到查询提示,

在此之后,我们可以向运行时系统询问信息。使用上述简单数据库,我们可以向程序提问,例如

它将给出答案

如果数据库信息与回答查询一致,系统会使用 yes 回应查询。使用可用的数据库信息,我们还可以检查该程序是否能够证明查询为真。No 表明该事实不能根据可用信息推导出来。

如果数据库没有足够的信息,系统会用 no 回答查询。

规则

规则扩展了逻辑程序的功能。规则用于在 Prolog 中提供决策过程。规则以以下形式指定

头被称为子句头。

:- 被称为子句体。它被读作“如果”。子句体由 t1, t2, t3,…, tk 指定。它包含一个或多个组件,可以使用逗号分隔。一条规则将读作“如果 t1, t2, t3,…., tk 都为真,则 head 为真”。

在下面的程序中,前两行表示事实,后两行表示规则

上述规则意味着“large_animal(A) 为真,如果 dog(A) 为真,并且 large(A) 为真,等等。”

最后一行表示“large_animal(C) 为真,如果 cat(C) 为真,并且 large(C) 为真。”


下一个主题Prolog 数据对象