0

我的意思是如何在另一个函数中使用 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).

Howewer 我得到错误,我是 prolog 中的新手,是否允许这种用法,如果不是,我怎样才能在列表中获取这些子列表,无论如何?

4

1 回答 1

0

你要的是findall,不是findall3

于 2013-06-10T01:23:26.780 回答