4
我有幾個Prolog的事實:序言,找到最佳匹配
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
謂詞並測試每一個,然後才返回最佳匹配。