Prolog - findall功能

时间:2013-06-09 23:04:07

标签: prolog

如何在另一个函数中使用findall函数,我的意思是

subset(0, [], []).
subset(Len, [E|Tail], [E|NTail]):- succ(PLen, Len),(PLen > 0 -> subset(PLen, Tail, NTail) ; NTail=[]).
subset(Len, [_|Tail], NTail):- subset(Len, Tail, NTail).

这给出了包含N个元素的列表的子列表,但我想将所有结果保存在列表中,然后我写了

 result(N,List,Result):- findall3(Y,subset(N,List,Y),Result).

我怎么会收到错误,我是prolog的新手,是否允许这种使用,如果不是,我怎么能在列表中获得这些子列表呢?

1 个答案:

答案 0 :(得分:0)

你想要的是findall,而不是findall3