簡體   English   中英

Prolog規則和查詢之間有什么區別?

[英]What's the difference between Prolog rules and queries?

我是邏輯編程的新手,發現很難理解規則和查詢之間的區別,我覺得它們基本相同。 任何幫助澄清這一點將不勝感激。

從句法上講,它們大致相同; p(1). ”可以是規則或查詢,具體取決於您放置它的位置。

從語義上講,它們不是。
p(1). ”作為一條規則告訴Prolog“ p(1)是真的”。
p(1). ”作為查詢詢問 Prolog“ p(1)真的嗎?”。

規則是諸如的定義

foo(X) :- bar(X), baz(X).

因為它出現在Prolog程序中。

查詢是上面定義的右側,即(bar(X), baz(X))或您在Prolog解釋器提示符下鍵入的內容以使程序運行。

查詢是您要求證明的語句(在此過程中可以實例化變量,可以將服務器作為“輸出”); 規則構成用於開發該證明的“程序”。

你的直覺是正確的:它們都是Horn條款的變體。 Horn子句的基本結構是:

head(...) :- body.

如果你的頭部沒有身體,你就有了事實。 如果你有兩者,你有一個謂詞。 如果您只有一個正文,那么您有一個查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM