2017-05-27 16 views
0

在SWI-Prolog的,我装这只是有这个文件:得到错误:未定义过程中的Prolog

% -*- Mode : Prolog -*- 

sunny. 

在终端,如果我做

?- sunny. 

它说true。但是,如果我做

?- fff. 

我希望它说false,但它不是说

ERROR: Undefined procedure: fff/0 (DWIM could not correct goal) 

本网站http://www.doc.gold.ac.uk/~mas02gw/prolog_tutorial/prologpages/facts.html做与foggy.的例子时,它说的输出应该是no,但我得到的错误。

有谁知道错在哪里?

谢谢

+3

本教程必须从20世纪70年代开始。今天,序言反而会产生一个在很多方面都要好得多的错误。然而,如果你真的想要得到这种行为(并且不要忘记[迷幻光](https://www.youtube.com/watch?v=jNlcK4fDxRM)中的内容),简单地说:'set_prolog_flag(unknown,fail) ' – false

+2

序言不知道'fff'是什么。如果你想让任何未知的谓词失败(顺便说一下,这可能会导致你在更大的程序中发现印刷错误),你可以做@false的建议。或者,您可以将您关心的某些谓词声明为动态的,如': - dynamic(fff/0).' – lurker

回答

2

您正在告诉prolog执行一个不存在的命令。 如果你有只有一个文件:

weather(sunny). 

然后运行命令

weather(foggy). 

将返回false。

相关问题