Module 重新加载导入的模块
我面临的“问题”是,如果我使用SWI Prolog模块系统,定义模块并在其他模块中使用它们,如果导入的模块发生更改,则在加载导入模块时,SWI Prolog不会将其考虑在内。例如:Module 重新加载导入的模块,module,prolog,swi-prolog,prolog-toplevel,Module,Prolog,Swi Prolog,Prolog Toplevel,我面临的“问题”是,如果我使用SWI Prolog模块系统,定义模块并在其他模块中使用它们,如果导入的模块发生更改,则在加载导入模块时,SWI Prolog不会将其考虑在内。例如: % file topmod.pl :- module(topmod, [thetop/0]). :- use_module(bottommod). thetop :- thebottom(S), format('This is the top~nAnd this is ~w~n', [S]).
% file topmod.pl
:- module(topmod, [thetop/0]).
:- use_module(bottommod).
thetop :-
thebottom(S),
format('This is the top~nAnd this is ~w~n', [S]).
% file bottommod.pl
:- module(bottommod, [thebottom/1]).
thebottom('the bottom').
如果我现在加载它们:
?- [thetop].
% bottommod compiled into bottommod 0.00 sec, 2 clauses
% topmod compiled into topmod 0.00 sec, 6 clauses
true.
?- thetop.
This is the top
And this is the bottom
true.
如果我现在更改文件:
% file bottommod.pl changes
- thebottom('the bottom').
+ thebottom('the foobar').
?- [thetop].
% topmod compiled into topmod 0.00 sec, 1 clauses
true.
?- thetop.
This is the top
And this is the bottom
true.
?- module(bottommod).
true.
?- listing.
thebottom('the bottom').
true.
除了使用
consult
,我应该如何强制Prolog查阅所有导入的模块及其导入的模块?您可以使用SWI-Prologmake/0
谓词重新加载自上次加载以来所有修改过的源文件。最好澄清该快捷方式的意义所在。