如何在另一个函数中使用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的新手,是否允许这种使用,如果不是,我怎么能在列表中获得这些子列表呢?
答案 0 :(得分:0)
你想要的是findall
,而不是findall3
。