Prolog 错误(存在错误(过程,(:-)/1),顶层/0)错误序言

Prolog 错误(存在错误(过程,(:-)/1),顶层/0)错误序言,prolog,Prolog,当我尝试运行时,我很难理解为什么会发生此错误 预期结果 谢谢。另外,如果有人能解释如何使用底部的查询,q1和end将非常有用,谢谢!代码看起来不错。只需键入q1.并输入。我在swipl上运行了它,它生成了预期的结果。也许你这边的空格有问题?谢谢伙计们,我以为我做错了什么,有没有办法输入-:likes(X,Y)。它使用q1查询给出给定的out和out?@chriskelly是的。您的代码应该像处理likes(X,Y)一样工作。查询。您的错误消息说它找不到:-。不要键入:-。这是序言提示! % FA

当我尝试运行时,我很难理解为什么会发生此错误

预期结果
谢谢。

另外,如果有人能解释如何使用底部的查询,q1和end将非常有用,谢谢!代码看起来不错。只需键入
q1.
并输入。我在
swipl上运行了它,它生成了预期的结果。也许你这边的空格有问题?谢谢伙计们,我以为我做错了什么,有没有办法输入-:likes(X,Y)。它使用q1查询给出给定的out和out?@chriskelly是的。您的代码应该像处理
likes(X,Y)一样工作。
查询。您的错误消息说它找不到
:-
。不要键入
:-
。这是序言提示!
% FACTS. 
mammal(kitty).
mammal(ratatat).
mammal(fido).
claws(kitty).
tail(ratatat).
bestfriend(fido).
feathers(tweety).

% 9 RULES. 
% If X is a mammal then X has fur. 
fur(X) :- mammal(X).
% If X has fur and X has a tail then X is a rat. 
rat(X) :- fur(X),tail(X).
% If X has claws and X has fur then X is a cat.
cat(X) :- claws(X),fur(X).
% If X is a cat then X meows.
meows(X) :- cat(X).
% If X has feathers then X is a bird.
bird(X) :- feathers(X).
% If X is a bestfriend and X has fur then X is a dog.
dog(X) :- bestfriend(X),fur(X).
% If X is a dog and Y meows then X likes Y.
likes(X,Y) :- dog(X),meows(Y).
% If X is a cat and Y is a bird then X likes Y.
likes(X,Y) :- cat(X),bird(Y).
% If X is a cat and Y is a rat then X likes Y.
likes(X,Y) :- cat(X),rat(Y).

writeln(T) :- write(T), nl.

% QUERY. Uncomment after you have written all predicates.
q1 :- findall(X, (likes(X,Y), format('~n~w ~w',[X,Y])),_).
end :- writeln('#'), halt.
?- likes(X,Y).
X = fido,
Y = kitty ;
X = kitty,
Y = tweety ;
X = kitty,
Y = ratatat ;