Prolog 用我的知识库的新行重复规则
我有一个问题,我有以下代码行:Prolog 用我的知识库的新行重复规则,prolog,Prolog,我有一个问题,我有以下代码行: aux(O,LD,LF):- line(Id,LE), aux(O,LD,Id,1,LE,_,[],LAF), LF = (LAF,LE). 如果LAF是一个空列表,我想得到我的下一个事实 line(...) 我的知识基础。我试过这个: aux(O,LD,LF):- line(Id,LE), aux(O,LD,Id,1,LE,_,[],LAF), (LAF==[],false), LF = (LAF,LE). 将条
aux(O,LD,LF):-
line(Id,LE),
aux(O,LD,Id,1,LE,_,[],LAF),
LF = (LAF,LE).
如果LAF是一个空列表,我想得到我的下一个事实
line(...)
我的知识基础。我试过这个:
aux(O,LD,LF):-
line(Id,LE),
aux(O,LD,Id,1,LE,_,[],LAF),
(LAF==[],false),
LF = (LAF,LE).
将条件设置为false是否应该重复下一行的过程?此处使用false将导致回溯到aux/3谓词的先前子类。此外,由于前面的错误,LF=LAF,LE永远不会出现。括号在这里没有帮助,因为总是会遇到false。swi-prolog有。你可以用它来解决你的问题。只需将它放在aux谓词之后。