我正在编写一个我正在写的程序的问题。该程序接受输入并基于它生成prolog程序。它生成这样的东西:
test(A):-condA(A),condB(A).
condA(val).
condB(val).
我的问题是,有时,程序中的任何地方都没有condB(val)或condB,除了上面的测试定义。在那种情况下,当我尝试询问test(val)时,我得到了condB的exists_error。有没有办法在prolog程序中添加一些内容,将condB定义为对其所有参数值的false?
如果这是一个愚蠢的问题,我很抱歉,因为我是prolog的新手。
答案 0 :(得分:4)
您可以告诉prolog处理器condB/1
是动态的:
:-dynamic condB/1.
答案 1 :(得分:0)
回答你的问题很简单。
condB(_):-fail.
符号' _'是自由变量。