2014-03-31 31 views
-1

我在序言中證明(元解釋器)既成事實的數量:元解釋Prolog的,算

solvept(true,true):- !. 
solvept((A,B),(ProofA,ProofB)):- 
    !, solvept(A,ProofA), solvept(B,ProofB). 
solvept(A,(A:-Proof)):- 
    clause(A,B), solvept(B,Proof). 

與此KB:

son(aa,bb). 
    son(bb,cc). 
    son(rr,tt). 

好了,現在我想算基本事實的數量。 誰能幫幫我?

回答

2

一些提示:clause/2標準謂詞返回原子true在事實的第二個參數。還有一個ground/1標準謂詞,允許您測試一個術語是否已經磨平。最後,您需要一些額外的參數來實際計算證據期間使用的基本事實的數量。這個數字最初爲零,每次使用地面事實時都會增加。嘗試使用累加器來實現計數。考慮報告您的實施嘗試。