我正在使用SWI-Prolog的命令行解释器swipl。我在包含文件test.pro
的目录中运行它,并尝试调用
[test.pro].
这导致swipl喷出
ERROR: Syntax error: Operator expected
ERROR: [test
ERROR: ** here **
ERROR: .pro] .
但是,如果我删除扩展程序,它可以正常工作。有没有办法将文件名传递给swipl加载哪些扩展名不会导致此错误?事实上,我想知道导致此错误的,因为SWI-Prolog的网站不是很有帮助。
答案 0 :(得分:5)
完成Magus'回答,请注意SWI-Prolog让你声明Prolog源文件的有效扩展:添加到你的〜/ .plrc(或windows对应的)声明
user:prolog_file_type(pro, prolog).
然后你将获得带
的文件?- [test].
答案 1 :(得分:3)
[]
的论点是一个原子。包含点的原子必须被'
包围:
['test.pro'].
答案 2 :(得分:0)
SWI prolog的惯例是使用'.pl'扩展名,所以如果你使用它,那么事情会更顺畅,你不必担心你的点。
然后你可以咨询:
[test].
..它将假定.pl扩展名,并在您的文件夹中查找test.pl。