在许多Prolog系统中,很容易为咨询文件添加新的搜索路径.例如,在Yap中,我知道的谓词是add_to_path(NewPath).有没有办法在SWI Prolog中做同样的事情?我的问题是专门为已经存在的路径添加一个路径,我知道用于声明目录的file_search_path/2谓词,以及用于更改当前目录的cd/1谓词,但我想知道是否有替代方法,就像我在Yap找到的那个.
提前致谢 !
在您的.plrc/ .yaprc/ .sicstusrc/中.swiplrc:
:- multifile(library_directory/1).
library_directory('/home/ulrich/lftp/Prolog-inedit').
Run Code Online (Sandbox Code Playgroud)
这有几种机制.我遇到的第一个是C-Prolog,它确实使用了条款library_directory/1.目前的SWI-Prolog机制源自Quintus,也用于SICStus.它通过这种library_directory/1方法推广,将表单的表达式<alias>(Path)视为对路径别名的搜索<alias>.
使用谓词file_search_path/2定义别名的路径.现在,library只是一个别名.通常,使用子句添加库file_search_path(library, Dir).
事实证明,这种机制非常灵活.当然,如果Prolog系统在这里更兼容,那将是很好的.我想今天YAP也支持该file_search_path系统.(2016编辑:确实如此,请参阅YAP Prolog用户手册:更改编译器的行为)
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |