prolog是programming in logic的縮寫,意思是使用邏輯進行程式設計的語言,在人工智慧領域被廣泛使用。
在學習prolog前我們需要乙個直譯器,我選擇的是swi-prolog,可以從
在這一章我們將通過例子展示prolog程式設計的基本思想,但是首先我們要先來學習下怎樣使用prolog系統。
乙個prolog程式是由許多過程組成(過程間的順序無關緊要),每乙個過程又是由乙個或多個句子組成(句子間的順
序非常重要)。句子有兩種型別:事實和規則,你馬上就會明白這兩者間的區別。當啟動prolog系統時你會看到乙個提
示符,通常是:
?-系統等待你輸入問題或命令。首先程式需要被載入到prolog資料庫,你可以通過consult命令引導程式,不要忘了在
最後加上".",例如:
?-consult(''name_of_the_file_with_the_program').
consult命令將文字檔案中的事實和句子新增到prolog資料庫中,你可以新增許多程式到資料庫中,但需要注意不要使用
相同的過程名,否則的話由於不同過程句子間的作用可能會導致過程錯誤。我們可以通過listing命令顯示出當前資料庫
中的所有內容。
?-listing.
prolog程式通過呼叫相應的過程來執行:
?-procedure_name(parameters).
需要注意的是這個過程必須已經載入到資料庫中,「呼叫過程」又被稱為「提出問題」。
編輯prolog程式只需要有乙個文字編輯器就行了,在swi-prolog下你可以呼叫emacs這個ide,它可以用不同顏色很清楚
的標識出句子、事實等。
?-emacs.
怎樣停止乙個prolog程式呢?你只需要用halt命令就行了,別忘了在最後新增上「.「。
?-halt.
Prolog 語言入門
prolog 是一種與眾不同的語言,不用來開發軟體,專門解決邏輯問題。比如,蘇格拉底是人,人都會死,所以蘇格拉底會死 這一類的問題。離散數學中的謂詞量詞那章。prolog 就是 邏輯程式設計 programming of logic 的意思。只要給出事實和規則,它會自動分析其中的邏輯關係,然後允許使...
Prolog教程 6 規則
pred x pred y pred z 前面我們已經說過,謂詞是使用一系列的子句來定義的。以前我們所學習的子句是事實,現在讓我們來看看規則吧。規則的實質就是儲存起來的查詢。它的語法如下 head body 其中,head 是謂詞的定義部分,與事實一樣,也包括謂詞名和謂詞的引數說明。連線符,一般可以...
語義網之PROLOG本質
1 prolog程式按下面目標的一般形式由事實和規則組成 p p1,p2,pn.表示合取 表示析取 其中,p是規則的頭,pk是子目標。當且僅當所有子目標滿足,頭目標p才能滿足。可理解為if。這種表達稱為horn子句 如果是 可理解,當這些子目標至少滿足乙個就可以了 2 舉例 parent x,y f...