跳转到内容

Prolog/词汇表

来自维基教科书,开放世界中的开放书籍

这是常见 Prolog 术语的词汇表[1]

参数
参数是出现在复合项中的项。例如 A1a2 是项 myterm(A1, a2) 的第一个和第二个参数。
元数
谓词接受的参数数量。例如,member(X,List) 的元数为 2。在文档中,谓词的元数写为谓词/元数。例如 member/2
回溯
如果子目标失败,内置 Prolog 搜索机制将返回父目标。子目标中实例化的任何变量都将被取消实例化。然后 Prolog 将搜索满足子目标的新方法。这个过程称为回溯
子句
关系的单个子句,通常定义为 Head :- Body,但另请参见事实
复合项

也称为结构。它由一个名称后跟 N 个参数组成,每个参数都是一个项。N 被称为项的元数

事实
没有主体、只有头部本身的子句
函子
复合名称元数的组合。项 foo(a, b, c) 被称为属于函子foo/3 的项。foo/0 用于指代原子 foo。
目标
向 Prolog 引擎提出的问题。目标要么是原子,要么是复合项。目标成功,在这种情况下,复合项中的变量具有绑定,或者如果 Prolog 无法证明目标,则失败。
接地项
没有逻辑变量的项。
谓词
一组子句或一个关系。
查询
参见目标
关系
谓词的同义词。
递归
定义缺失
规则
参见子句。
Prolog 中的每个对象都是一个项,包括变量、复合项、数字、源代码。
统一
Prolog 将两个相等的进程,方法是将一个项中的变量分配给另一个项中对应位置的值。例如,

?- foo(a, B) = foo(A, b).
A = a,
B = b.
不同于 Prolog 中不存在的赋值,统一不是定向的。

单例变量
如果变量在一个子句中只命名一次,通常用 _ 代替它。


华夏公益教科书