如何在SWI-Prolog软件包中显示更多路径?

时间:2019-05-20 21:26:06

标签: prolog package swi-prolog

我对SWI-Prolog软件包比较陌生。我已经做了一些,通常将Prolog代码放入文件夹message_id中,如下所示:

...' <a href="{{ url_for('reply', message_id='X') }}"'.replace('X', mid) + '>...'

然后我可以使用prolog来加载模块hello。我将文件夹+- prolog +- hello.pl 称为程序包的主根目录。

我将如何指定和/或建立可操作的根源?例如,如果我想将几个数据库模块存储在单独的文件夹中:

:- use_module(library(hello))

推荐的方法是什么?我可以从内部打招呼prolog,这行得通吗?恐怕我还没有尝试,而是要提出建议。

最好的问候

1 个答案:

答案 0 :(得分:0)

好的,我正在寻找另一个解决方案。我在prolog目录中使用了一个子目录。这样,我可以通过:- use_module(database/rivers)访问子目录中的Prolog文本,而路径中没有单引号:

+- prolog
     +- database
     |   +- rivers.pl
     |   +- cities.pl
     +- hello.pl

一个问题是使代码与另一个Prolog系统兼容。有帮助的是条件编译,这是通过术语扩展实现的功能。例如,我可以开始如下的河流Prolog文本:

:- if(current_prolog_flag(dialect, jekejeke)).

:- package(library(database)).

:- endif.

:- module(rivers, [river/2]).