Prolog SWI序言和文件扩展名:为什么赢得';swipl是否识别具有扩展名的文件?
我正在使用SWI-Prolog的命令行解释器swipl。我在包含文件Prolog SWI序言和文件扩展名:为什么赢得';swipl是否识别具有扩展名的文件?,prolog,swi-prolog,Prolog,Swi Prolog,我正在使用SWI-Prolog的命令行解释器swipl。我在包含文件test.pro的目录中运行它,并尝试调用 [test.pro]。 这会导致swipl喷出 错误:语法错误:应为运算符 错误:[测试 错误:**在这里** 错误:.pro]。 但是,如果我删除扩展,它就可以正常工作。有没有办法将文件名传递给swipl以加载扩展名不会导致此错误的文件?事实上,我想知道是什么导致了这个错误,因为SWI Prolog的网站并没有太大帮助。的参数是atom。包含点的原子必须被包围: ['test.pro
test.pro
的目录中运行它,并尝试调用
[test.pro]。
这会导致swipl喷出
错误:语法错误:应为运算符
错误:[测试
错误:**在这里**
错误:.pro]。
但是,如果我删除扩展,它就可以正常工作。有没有办法将文件名传递给swipl以加载扩展名不会导致此错误的文件?事实上,我想知道是什么导致了这个错误,因为SWI Prolog的网站并没有太大帮助。的参数是atom。包含点的原子必须被
包围:
['test.pro'].
SWI prolog的惯例是使用“.pl”扩展名,因此,如果使用该扩展名,事情将运行得更加顺畅,您不必担心点
然后,您可以咨询:
[test].
。。它将采用.pl扩展名,并在您的文件夹中查找test.pl。要完成Magus的回答,请注意,SWI Prolog允许您声明Prolog源文件的有效扩展名:将声明添加到~/.plrc(或windows对应文件)中
user:prolog_file_type(pro, prolog).
然后你就可以用
?- [test].
感谢您的提示,尽管现在显示配置文件名为.swiplrc
。对于那些感兴趣的人来说,gprolog似乎除了支持.pl
之外,还支持.prolog
开箱即用,尽管不是.prolog
。