私はいくつかのプロローグの事実を持っています:
relation('Kitchen', [item(spoon), item(fork), item(knife) ]).
relation('Lounge', [item(sofa), item(chair), item(table) ]).
relation('Bedroom', [item(bed), item(desk), item(drawers)]).
実行時に生成されるリスト。例:
[item(spoon), item(knife)]
このリストから、この場合、'Kitchen' が最も一致するので返してもらいたいと思います。
述語を使用して実行時リストに一致する数を取得する必要があると思うので、Kitchen は 2 を返し、他のものは 0 を返しますが、すべての述語intersection/3
を再帰する方法がわかりません。relation/2
最適な一致のみを返す前に、それぞれをテストします。