因此,我有一些Prolog代码可以对变量赋值进行建模,例如在编程语言中,并尝试查看它们是否彼此兼容 . 所以,
assigned(X, X).
and(P, Q) :- P, Q.
or(P, Q) :- P.
or(P, Q) :- Q.
% and then we should test an expression like this:
and(assigned(X, 5), assigned(X, 6)).
因此,最后一个表达式失败,因为 X
无法分配给5和6 .
现在,我想要做的是让这个测试成为一个表达式(可以并且应该硬编码到文件中),然后简单地打印出它是否能够满足 . 但似乎SWIPL真的希望我以交互方式运行 . 理想情况下,这样的事情:
> ./test-assignments
false.
当然这有可能吗?我在这方面已经结束了 .
1 回答
有几种方法可以让SWI-Prolog程序直接从shell运行 . 你可以看看这个问题和答案:
How to run SWI-Prolog from the command line?
我个人的偏好现在是这样的文件
example.pl
:然后我从命令行运行:
初始化指令告诉解释器在加载程序后要评估哪个目标:这里是
main/0
. 名称main
是一个约定,它可以被称为其他任何东西 .请参阅其他选项的链接问题和答案 .