我想要的是我定义:
marriedTo(martin, annie).
Run Code Online (Sandbox Code Playgroud)
它还使以下成立:
marriedTo(annie, martin).
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容,但它(显然)是一个无限循环.
marriedTo(X,Y) :- marriedTo(Y,X).
Run Code Online (Sandbox Code Playgroud)
我怎么在Prolog中这样做?
解决它的最简单方法是:
marriedTo(martin, annie).
...
married(X,Y) :- marriedTo(X,Y).
married(X,Y) :- marriedTo(Y,X).
Run Code Online (Sandbox Code Playgroud)
然后还有很多其他的方法,实现和语义来解决无限递归的问题......
我终于明白了:
marriedTo(X,Y) :- marriedTo(Y,Z), X = Z, !.
Run Code Online (Sandbox Code Playgroud)