Prolog-findall函数
我的意思是,如何在另一个函数中使用findall函数Prolog-findall函数,prolog,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个元素的列表的子列表,但我想把所有结果都保存在一个列表中
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中,这是允许或不允许的使用,如果不允许,我如何才能获得这些子列表中的一个列表,是无论如何 您想要的是
findall
,而不是findall3
您的意思是键入findall3
?它实际上是findall/3
,这意味着它被称为findall
,并接受3个参数。哦,对不起,谢谢。