我的意思是,如何在另一个函数中使用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中的新手,这种用法允许还是不允许,如果不允许,我如何在列表中获得这些子列表,有吗?
发布于 2013-06-10 09:23:27
你想要的是findall,而不是findall3。
https://stackoverflow.com/questions/17015031
复制相似问题