Prolog-将输出保存到列表中的功能

时间:2015-03-26 23:18:38

标签: prolog

我正在尝试编写一个将另一个函数的所有输出保存到列表中的函数。例如,我有一个输出以下内容的函数......

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的新手,所以请尽量保持简单易懂。感谢。

1 个答案:

答案 0 :(得分:2)

您正在寻找findall谓词。