2017-05-27 32 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。

相關問題