问题描述
|
在许多Prolog系统中,很容易为咨询文件添加新的搜索路径。
例如,在Yap中,我知道的谓词是add_to_path(NewPath)。
有没有一种方法可以在SWI Prolog中执行相同操作?我的问题是关于在现有路径中添加一个路径,我知道用于声明目录的file_search_path / 2谓词,以及用于更改当前目录的cd / 1谓词,但是我想知道是否还有其他方法方法,就像我在Yap中找到的那样。
提前致谢 !
解决方法
有几种机制。我遇到的第一个对象是C-Prolog,它确实使用了ѭ0的子句。当前的SWI-Prolog机制源自Quintus,也用于SICStus。它是从“ 0”方法得出的
将形式为“ 2”的表达式视为对路径别名“ 3”的搜索。
别名的路径是使用谓词file_search_path / 2定义的。现在,
library
只是一个别名。通常,使用子句“ 5”添加库。
实践证明,该机制非常灵活。当然,如果Prolog系统在此具有更高的兼容性,那就太好了。我认为今天的YAP也支持file_search_path
系统。 (2016年编辑:的确如此,请参阅《 YAP Prolog用户手册:更改编译器的行为》)
, 在您的.plrc
/.yaprc
/.sicstusrc
/.swiplrc
中:
:- multifile(library_directory/1).
library_directory(\'/home/ulrich/lftp/Prolog-inedit\').