我试图了解一对Prolog查询的情况。我有以下规则:
similar(a,aa).
similar(aa,aaa).
similar(X,X).
similar(X,Y) :- similar(Y,X).
similar(X,Y) :- similar(X,Z), similar(Z,Y).
然后我会尝试做一个基本的查询:
?- similar(a,aaa).
导致以下错误:
uncaught exception: error(existence_error(procedure,similar/0),similar/0)
在我看来它会返回True
,因为它会看到similar(a,aa)
和similar(aa,aaa)
,从而满足第二个角项。
我做错了什么?