Prolog exists_error用于生成的prolog文件中的谓词

时间:2016-06-20 15:37:44

标签: prolog

我正在编写一个我正在写的程序的问题。该程序接受输入并基于它生成prolog程序。它生成这样的东西:

test(A):-condA(A),condB(A).
condA(val).
condB(val).

我的问题是,有时,程序中的任何地方都没有condB(val)或condB,除了上面的测试定义。在那种情况下,当我尝试询问test(val)时,我得到了condB的exists_error。有没有办法在prolog程序中添加一些内容,将condB定义为对其所有参数值的false?

如果这是一个愚蠢的问题,我很抱歉,因为我是prolog的新手。

2 个答案:

答案 0 :(得分:4)

您可以告诉prolog处理器condB/1是动态的:

:-dynamic condB/1.

答案 1 :(得分:0)

回答你的问题很简单。

condB(_):-fail.

符号' _'是自由变量。