2011-03-07 121 views
11

我是Prolog的全新產品。我只是想在Windows Vista上從Prolog獲得一些輸出。第一次使用SWI-Prolog

我已經下載並安裝了Prolog 5.1;安裝時我選擇了.pro文件擴展名(不要與Perl文件混淆)。我創建了一個文件test.pro。 在這個文件中,我把下列:

inside(tom). 
?-inside(tom). 

我雙擊了該文件,並彈出一個命令行界面。在該界面(一堆普通的Prolog版本/版權信息後)唯一的輸出是:

1 ?- 

OK,對於初學者來說,我沒想到它問題;我期待它回答一個問題(沿'是'的線)。

無論如何,我試圖用下面的查詢作出迴應:「裏面(TOM)」

在命令行中我重新插入,使整條生產線的樣子:

1 ?- inside(tom). 

我按輸入並得到一個錯誤信息:

ERROR: toplevel: Undefined procedure: inside/1 (DWIM could not correct goal) 

回答

6

您需要編譯這個第一(也稱爲序言「請示」)。如果我知道你有哪個版本的prolog,我可以找出這個命令的確切鍵入(Ctrl-L可能工作)。順便說一句,歡迎來到prolog的美妙世界 - 我喜歡它:)只要你跨過這個障礙,它會變得更好。 :)

+0

我猜這是SWI-Prolog的(你可能多少會感到驚訝有不同的'序言')。在這種情況下,「諮詢...」位於主文件菜單上,它會提示您輸入要加載的文件,只需重新加載此文件即可。事實上,在它做任何事之前,你確實需要問一個查詢 - 這是任何prolog程序的工作原理。 – 2011-03-07 17:21:09

+0

是的,SWI-Prolog。我發現並且我認爲我編譯了這個文件。起初,當我從文件菜單中選擇'consult'選項時,我沒有看到名爲test.pro的文件。我必須選擇查看「所有文件」(這很奇怪,也許prolog不能識別.pro文件)以使文件變得明顯;我選擇它,它似乎是合作的。我收到了消息:「dir .../test.pro編譯0.00秒,1,696字節」,但是我沒有在同一個目錄中看到編譯的文件,並且正在搜索與Prolog一起安裝的新目錄結構安裝。 – 2011-03-07 17:45:46

+0

我重新安裝了SWI-Prolog,但文件擴展名的默認值爲.pl。這似乎是問題......除了按照您的建議通過菜單「file/consult」進行編譯之外。謝謝你的幫助。 – 2011-03-07 20:53:20

19

如果您還沒有告知它,Prolog不回答問題事實。 (除了一些內置的事實,比如member(1, [1,2,3])。)

你可以告訴它誰是內通過(評論跟隨%):

1 ?- [user].       % get facts and rules from user input 
|: inside(mary).      % Mary and John are explicitly inside 
|: inside(john). 
|: inside(X) :- location(X, house). % rule: anyone in the house is inside 
|: inside(X) :- location(X, office). % (variables start with a capital letter) 
|: 
|: location(tom, house). 
|: location(bernard, house). 
|: location(anne, office). 
|:         % type Ctrl+D 
% user://1 compiled 0.00 sec, 1,220 bytes 
true. 

2 ?- inside(tom).      % Prolog deduces that Tom is inside 
true . 

如果你想學習的Prolog,Learn Prolog Now是一個很好的,免費教程。

+1

非常感謝。我也喜歡這個教程。 – 2011-03-07 22:13:24

0

快速而骯髒。缺少的是編譯該文件,稱爲諮詢 ,語法如下,該行中的所有字符都是相關的。

? - [filename]。

那麼你可以提出問題,並做其他事情什麼數據庫。(在序言中的源代碼)

http://www.swi-prolog.org/pldoc/man?section=quickstart