更改Prolog的Return响应

时间:2013-03-03 18:51:46

标签: prolog prolog-toplevel xsb

我是prolog编程的新手。

我想更改prolog程序返回的值,使其返回true / false而不是标准yes或no。

考虑一个非常简单的例子: 例如。 simple.P

node(1).

isNode(X) : node(X)
如果我输入isNode(1),则在prolog命令行上

返回yes,如:

isNode(1).

yes

我的问题是:

如何将此更改为“是”?

1 个答案:

答案 0 :(得分:1)

Prolog尝试查找您的查询证明。如果您的查询包含变量,则会输出一个使其成立的值。

问:是否有任何素数均匀? 答:是的 - 2是偶数和素数

只要你输入,它就会不断给你更多的证明; 最终它会耗尽,并作出回应 假的。

问:是否有任何素数均匀? 答:是的 - 2是偶数和素数 问:还有吗? A:假。​​

您希望程序执行输出。有许多库谓词可以做到这一点。最灵活的是格式/ 2

myprogram :-
   my_old_program, !,
   format('yup, that sure is right!~n', []).
myprogram :-
   format('nope, nope, no way in heck!~n', []).