对于了解 prolog 的人来说是一个简单的错误。没有句号导致错误

Kic*_*aha 2 prolog

likes(a,b).
likes(b,d).
likes(c,e).
likes(d,f).
likes(e,h).

likes_trans(X,Y) :- likes(X,Z),likes_trans(Z,Y).
likes_trans(X,Y) :- likes(X,Y).
listfriends(X,R) :- findall(Y,likes_trans(X,Y),R).
likes_both(X,Y,R) := listfriends(X,P), listfriends(Y,S), member(R,P), member(S,P).
Run Code Online (Sandbox Code Playgroud)

为什么最后一行“likes_both”给我错误(加载文件时)

子句正文中的句号?无法重新定义

非常感谢任何建议,我知道我在这里错过了一些基本的东西。

das*_*ght 5

看起来:=最后一行应该替换为:-

likes_both(X,Y,R) :- listfriends(X,P), listfriends(Y,S), member(R,P), member(S,P).
/*  Here ---------^^ */
Run Code Online (Sandbox Code Playgroud)