如何从另一个文件调用事实和规则
How to call facts and rules from another file
案例:我有一个文件,solution.pl,我想在其中使用另一个文件的规则(这是程序的定义,不由我决定,但我认为它有点通用)。
所以我正在使用 Ciao Prolog,语法似乎是 ensure_loaded('c:/Path').
但是当我尝试使用其他文件的规则时,它告诉我他不知道我正在尝试使用什么规则。
另一方面,如果我在控制台上写入相同的通道,然后再次查询,它确实有效。
所以我想知道在控制台和文件上执行此操作的语法是否不同??
有人可以一步一步地告诉我,这样我就可以弄清楚我是否遗漏了什么吗?我现在正在做的是加载程序,就像我对较小的程序所做的那样,然后尝试查询 ensure_loaded
命令中包含的文件的规则。正如我所说,如果在程序之外编写命令,它似乎确实有效。
在solution.pl,尝试
:- ensure_loaded('c:/Path').
或者,如果 c:/Path
中的源代码有模块指令 - 也就是说,它以 :- module(name, [exported/arity, ...]).
开头
:- use_module('c:/Path').
案例:我有一个文件,solution.pl,我想在其中使用另一个文件的规则(这是程序的定义,不由我决定,但我认为它有点通用)。
所以我正在使用 Ciao Prolog,语法似乎是 ensure_loaded('c:/Path').
但是当我尝试使用其他文件的规则时,它告诉我他不知道我正在尝试使用什么规则。
另一方面,如果我在控制台上写入相同的通道,然后再次查询,它确实有效。
所以我想知道在控制台和文件上执行此操作的语法是否不同??
有人可以一步一步地告诉我,这样我就可以弄清楚我是否遗漏了什么吗?我现在正在做的是加载程序,就像我对较小的程序所做的那样,然后尝试查询 ensure_loaded
命令中包含的文件的规则。正如我所说,如果在程序之外编写命令,它似乎确实有效。
在solution.pl,尝试
:- ensure_loaded('c:/Path').
或者,如果 c:/Path
中的源代码有模块指令 - 也就是说,它以 :- module(name, [exported/arity, ...]).
:- use_module('c:/Path').