我对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
,这行得通吗?恐怕我还没有尝试,而是要提出建议。
最好的问候
答案 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]).