我想要的是我定义时:
marriedTo(martin, annie).
它也是如下:
marriedTo(annie, martin).
我尝试了以下内容,但它(显然)是一个无限循环。
marriedTo(X,Y) :- marriedTo(Y,X).
我如何在Prolog中执行此操作?
答案 0 :(得分:9)
解决问题的最简单方法是:
marriedTo(martin, annie).
...
married(X,Y) :- marriedTo(X,Y).
married(X,Y) :- marriedTo(Y,X).
然后还有很多其他方法,实现和语义来解决无限递归的问题......
答案 1 :(得分:1)
毕竟我想出来了:
marriedTo(X,Y) :- marriedTo(Y,Z), X = Z, !.