假设 Prolog 中有一个简单的人员数据库
person(john).
person(mary).
person(john).
person(susan).
我需要完全匹配一次:
john-mary, john-john, john-susan, mary-john, mary-susan, john-susan
我试着想出这样的事情:
match:- person(X),!,person(Y), write(X),write(-), write(Y),nl.
run:- person(X), match(X), fail.
但是它匹配了很多次,并且匹配了一个人与他/她自己,这不应该。
基本上,我需要的是遍历所有 X 并使 Prolog 看起来严格“低于”Y。