2012-05-20 19 views
0

假設你有下面的程序加載在序言:如何將規則添加到此程序中?

?- listing. 
fast(ann). 
slow(bob). 
slow(norm). 
true. 
?- 

我如何可以添加以下規則來這個節目?

faster(X,Y) :- fast(X), slow(Y). 

有人能幫我寫嗎?

回答

2

有兩種選擇。

  1. 把規則的文件,說faster.pl,然後加載與[faster].
  2. 問題[user].該文件在提示符,然後輸入SWI-Prolog的規則和問題EOF(按Ctrl + d )。
0

序言database是動態的:修改規則的基礎可以使用assertz/1和撤銷/ 1來完成。然後,加入到@larsman答案,你可以寫

?- assertz((faster(X,Y) :- fast(X), slow(Y))). 

之後,從你的事實基礎:

?- faster(X,Y). 
X = ann, 
Y = bob ; 
X = ann, 
Y = norm. 
相關問題