我有几个序言事实:
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)]
从这个列表中,在这种情况下,我希望返回“厨房”,因为它是最佳匹配。
我想我需要使用intersection/3
谓词来计算运行时列表中有多少匹配项,所以 Kitchen 会返回 2 而其他人会返回 0,但我不知道递归所有relation/2
谓词的方法和测试每一个,然后只返回最佳匹配。