2011-07-13 85 views

回答

2

yes結果的原因是R,即僅由a和b構成的集合實際上是滿足p(x)謂詞的所有X的集合。

如果要向R中添加元素或從中刪除a或b,結果將爲no

p(a)和p(b)爲真,因爲斷言謂詞將這些子句添加到數據庫中。

同樣,保持R = [a, b]如果你增加一個條款,與說assert(p(c)),其結果必然是no  (因爲R.將缺少C到有所有 X滿足P(X))。

+0

請注意,在調用setof/3後'X'仍然沒有綁定,因爲'X'是一個「虛擬變量」,用於告訴Prolog目標'p(X)'的什麼解決方案將被收集到列表中'R'。當目標中出現不止一個變量時,'setof/3'還允許使用更復雜的語法,因此某些變量的值可以作爲複合項組合在列表中,其他變量的值可以在回溯中綁定或修改。 – hardmath

相關問題