元翻译Prolog,计算基础事实的数量

时间:2014-03-31 15:08:41

标签: prolog

我在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).
好的,现在我想要计算一些基本事实。 谁能帮帮我?

1 个答案:

答案 0 :(得分:2)

一些提示:clause/2标准谓词在其第二个参数中返回原子true以获取事实。还有一个ground/1标准谓词,允许您测试术语是否为基础。最后,您需要一些额外的参数来实际计算证明期间使用的基础事实的数量。这个数字最初为零,每次使用基础事实时它都会递增。尝试使用累加器来实现计数。考虑报告您的实施尝试。