Prolog内置谓词全解析
1. 内置谓词概述
内置谓词是指由Prolog系统预先定义的谓词,而非由用户自己的子句定义。这些谓词能提供一些纯Prolog定义无法实现的功能,或者为程序员提供便利,避免重复定义。例如,第5章讨论的读写谓词,以及“cut”都可视为内置谓词。
内置谓词可能会有“副作用”,即满足涉及该谓词的目标时,除了参数实例化外,还可能导致其他变化。此外,内置谓词可能对参数有特定要求。以谓词“<”为例,当数字X小于数字Y时,X < Y成功。这种关系在没有外部对数字的了解的情况下,无法在Prolog中定义,因此“<”是内置谓词,其定义涉及底层机器操作来测试数字的大小。
如果X是原子,或者X和Y都未实例化,使用X < Y目标时,机器定义将不适用。因此,必须规定只有当X和Y都实例化为数字时,X < Y才是合理的目标。若不满足此条件,结果取决于具体的Prolog实现,可能是目标失败,也可能是打印错误消息并采取相应措施。
2. 输入新子句
在编写Prolog程序时,需要告知系统使用哪些子句,并对其进行提问。然而,标准Prolog并未规定统一的方式,不同实现可能提供不同的功能。常见的方法有两种:在键盘上输入新子句,或者让Prolog从预先准备的文件中读取子句。从Prolog的角度看,这两种操作是相同的,因为计算机键盘和显示器可视为名为user的文件。
2.1 consult谓词
consult(X) 是用于读取新子句的基本内置谓词。其作用是用文件(或在终端输入)中的子句替换相同谓词的所有现有子句。参数X必须是一个原子,表示要从中获取子句
超级会员免费看
订阅专栏 解锁全文
29

被折叠的 条评论
为什么被折叠?



