【发布时间】:2013-09-01 18:07:19
【问题描述】:
我是 prolog 的新手,我正在尝试编写一个谓词,如果两个火车站在同一条线上,则返回“是”。
line(1,[a,b,c,d,e]);
line(2,[b,g,f,e,i,h]);
line(3,[l,m,g,n,f,o,p,q,i,j]);
same_line(X,Y):-
line(_,L),
member(X,L),
member(Y,L).
示例: ?-same_line(n,j)。 是的
但是,我在编译时在 WIN-PROLOG 中收到此错误:!错误 67:谓词受保护
我做错了什么?
【问题讨论】:
-
为什么
line断言的末尾有分号 (;)?它们应该是句点 (.)。 -
谢谢。就像我说的,我是 prolog 的新手。这是一种在行尾使用 (;) 的“反射”。
-
这样能解决问题吗?
-
是的,确实如此。对此我感到很愚蠢。
-
不用担心。我在 Prolog、Ruby、Python 和 C/C++ 之间切换,这也发生在我身上……
标签: prolog predicate win-prolog