Prolog/詞彙表
外觀
< Prolog
這是常見 Prolog 術語的詞彙表[1]。
- 引數
- 引數是出現在複合項中的項。例如 A1 和 a2 是項
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). 不同於 Prolog 中不存在的賦值,統一不是定向的。
A = a,
B = b.
- 單例變數
- 如果變數在一個子句中只命名一次,通常用 _ 代替它。