跳轉到內容

Prolog/詞彙表

來自華夏公益教科書

這是常見 Prolog 術語的詞彙表[1]

引數
引數是出現在複合項中的項。例如 A1a2 是項 myterm(A1, a2) 的第一個和第二個引數。
元數
謂詞接受的引數數量。例如,member(X,List) 的元數為 2。在文件中,謂詞的元數寫為謂詞/元數。例如 member/2
回溯
如果子目標失敗,內建 Prolog 搜尋機制將返回父目標。子目標中例項化的任何變數都將被取消例項化。然後 Prolog 將搜尋滿足子目標的新方法。這個過程稱為回溯
子句
關係的單個子句,通常定義為 Head :- Body,但另請參見事實
複合項

也稱為結構。它由一個名稱後跟 N 個引數組成,每個引數都是一個項。N 被稱為項的元數

事實
沒有主體、只有頭部本身的子句
函子
複合名稱元數的組合。項 foo(a, b, c) 被稱為屬於函子foo/3 的項。foo/0 用於指代原子 foo。
目標
向 Prolog 引擎提出的問題。目標要麼是原子,要麼是複合項。目標成功,在這種情況下,複合項中的變數具有繫結,或者如果 Prolog 無法證明目標,則失敗。
接地項
沒有邏輯變數的項。
謂詞
一組子句或一個關係。
查詢
參見目標
關係
謂詞的同義詞。
遞迴
定義缺失
規則
參見子句。
Prolog 中的每個物件都是一個項,包括變數、複合項、數字、原始碼。
統一
Prolog 將兩個相等的程序,方法是將一個項中的變數分配給另一個項中對應位置的值。例如,

?- foo(a, B) = foo(A, b).
A = a,
B = b.
不同於 Prolog 中不存在的賦值,統一不是定向的。

單例變數
如果變數在一個子句中只命名一次,通常用 _ 代替它。


華夏公益教科書