要素のリストがあり、特定の /2 述語のすべてのインスタンスを循環して、リスト内の一致する要素の数が最も多いものを見つける必要があるという問題があります。実装に関しては、これまでに最高の一致を更新し、それ以上ないときに停止する方法を理解できないようです。
findAnswer(MyList, HighMatchNum,_):-
answer(X,Y),
myIntersection(MyList, Y, NUM), //handles a single instance check and returns how many elements match.
NUM > HighMatchNum,
findAnswer(MyList, NUM, answer(X,Y)).
//Knowledge base
answer(sample1, [a,b,c,d]).
answer(sample2, [d,c,e]).