首页 > 解决方案 > 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 无法更正目标)

标签: swi-prolog

解决方案


您应该使用include()谓词来加载文件的内容。因此,在 中file2.pl,您将拥有:

dog(c).
:- include("file1.pl").

的内容file2.pl将在之后立即加载dog(c).


推荐阅读