swi-prolog - load_files 仅适用于 swi prolog shell?
问题描述
从 swi prolog shell 我可以使用 load_files(filename) 加载 prolog 文件。
但是,如果我从 prolog 文件中调用 load_files 将不起作用。
我是序言的新手。
我试图用 .pl 结束文件或将文件名放在“”或“”之间。
以下不起作用:
file1.pl 的内容:dog(a)。狗(乙)。
file2.pl 的内容:dog(c)。加载文件(文件 1)。
如果现在从 prolog shell 我执行 load_files(file2) 它不会加载狗 a 和 b。
如果我这样做,将显示以下错误:?- load_files(file2). 真的。
?- 狗(M)。错误:顶层:未定义过程:dog/1(DWIM 无法更正目标)
解决方案
您应该使用include()
谓词来加载文件的内容。因此,在 中file2.pl
,您将拥有:
dog(c).
:- include("file1.pl").
的内容file2.pl
将在之后立即加载dog(c).
推荐阅读
- python - 尝试从 Anbima API 检索数据
- react-native - 错误:model.execute(dict) 中提供的 dict['ToFloat'] 的形状必须为 [-1,-1,-1,3],但为 [200,150,3]
- python - 如何使用 Keras 循环创建预测模型?
- p5.js - p5.js 中的音高转换
- java - 浓咖啡。引起:junit.framework.AssertionFailedError: 'with error: is "..." does not match the selected view
- arrays - 如何在不指定 C 语言大小的情况下创建字符串数组?
- ios - UIButton 当前颜色检查
- javascript - 了解 JavaScript 中的源代码管理和文档
- scala - 有没有一种简单的方法可以将 Option[Task[T]] 转换为 Task[Option[T]]?
- selenium - 如何在 Chrome 中为隐身窗口设置“AutoSelectCertificateForUrls”策略?