在SWI序言中添加搜索路径

问题描述

| 在许多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\').