[英]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.