在 Prolog 中加载子句2024 年 8 月 29 日 | 阅读 2 分钟 为了将子句加载到数据库中,有两个内置谓词:consult/1 和 reconsult/1。在这两个谓词中,文本文件中可用的子句将被加载到数据库中。以下示例显示了它们之间的区别。假设 file1.pl 文件包含以下详细信息 file2.pl 文件包含以下详细信息 现在我们将输入以下两个目标 在提示符下,成功执行这些目标后,会将这些子句放入数据库中。 实际上,从第二个文件加载的子句将添加到已从第一个文件加载的子句中。这些子句是按谓词添加的。在上面的例子中,我们可以看到 dog(fido) 在数据库中出现了两次。在 Prolog 系统中,没有任何东西可以阻止这种情况。 相比之下,我们将输入以下两个目标 在提示符下,成功执行这些目标后,会将这些子句放入数据库中。 在 file2.pl 中,谓词的定义完全取代了数据库中之前的任何子句。现在,以通常的方式,可以加载新的谓词。上面的例子显示了以下几点
上面的例子表明 reconsult 最没有帮助。但是 reconsult 通常用于正常的程序开发。一些程序开发人员使用各种 consult 目标来选择加载大型程序的多个部分。但是程序员开发程序最常用的方法是将整个程序作为一个文件加载,测试该文件,然后对该文件进行更改。在新版本的文件中,程序员将使用相同的名称保存更改,然后程序员将从该文件中重新加载子句。为了正确工作,我们必须检查每次旧版本的子句是否被删除。使用 consult,我们可以第一次实现这个目标,然后每次后续使用 reconsult。 在各种 Prolog 版本中,consult 和 reconsult 谓词的使用非常频繁。Prolog 的简化表示法描述了 ['file1.pl'] 代表 consult('file1.pl'),[-file.pl] 代表 reconsult('file1.pl')。 下一主题Prolog 中的变量 |
我们请求您订阅我们的新闻通讯以获取最新更新。