我正在尝试编写一个将另一个函数的所有输出保存到列表中的函数。例如,我有一个输出以下内容的函数......
findComb([1,2,3,4],B).
?- [1,3];
?- [1,3];
?- [1,4];
?- [1,4];
?- false
我想要一个将所有输出保存到列表中的函数。例如......
?- [[1,3],[1,3],[1,4],[1,4]]
这是我尝试创建这样一个函数但它导致无限循环......
convert(List,Accum) :-
findComb(List,M),
M \= false,
convert(List,[M|Accum]).
我是prolog的新手,所以请尽量保持简单易懂。感谢。
答案 0 :(得分:2)
您正在寻找findall
谓词。