Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prolog 用我的知识库的新行重复规则_Prolog - Fatal编程技术网

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谓词之后。