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'给我错误(加载文件时)
完全停止子句体?无法重新定义
任何建议都非常感谢,我知道我在这里缺少一些基本的东西。
答案 0 :(得分:4)
看起来最后一行的:=
应该替换为:-
likes_both(X,Y,R) :- listfriends(X,P), listfriends(Y,S), member(R,P), member(S,P).
/* Here ---------^^ */