2013-04-11 28 views
1

我是Prolog的新手,但是我无法从文件运行任何程序。 我在/ opt/local/bin中安装了mac os x mountain lion和swipl。 脚本名称是'prolog',它与swipl位于相同的目录中。Prolog给出错误undefined程序

muz(petr). 
muz(pavel). 
muz(jan). 

zena(petra). 
zena(pavla). 
zena(martina). 

potomek(pavel, petr). 
potomek(jan, pavel). 
potomek(petra, jan). 

vzdaleny_potomek(A,B):=potomek(A,B). 
vzadelny_potomek(A,B):=vzdaleny_potomek(B,C). 

在终端,我第一次运行swipl然后键入consult(prolog),它编译好的,但后来当我想运行例如vzdaleny_potomek(petr, pavel),它给了我错误

错误:顶层:未定义的程序:vzdaleny_potomek/2(DWIM无法修正目标)

+0

如果SWI-Prolog安装正确(可能是),它将在您的$ PATH上,并且您不需要在同一目录中启动它。实际上,如果它不在你的$ PATH中,即使你在同一个目录下,也必须输入'./ swipl'。使用'echo $ PATH'来查看你的$ PATH,并把你的源文件放在你的主目录中。只是一个建议。 – 2013-04-11 07:47:13

+0

这里有一些奇怪的地方,经过鲍里斯的修正:'vzadelny_potomek(A,B): - vzdaleny_potomek(B,C).'。两个单身! – CapelliC 2013-04-11 13:45:57

回答

4

您的谓词定义错误。这应该是::=而不是::-