2
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).

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

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

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

4

1 回答 1

4

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

likes_both(X,Y,R) :- listfriends(X,P), listfriends(Y,S), member(R,P), member(S,P).
/*  Here ---------^^ */
于 2012-10-30T12:42:17.190 回答