如何将规则添加到此程序?

时间:2012-05-20 12:50:26

标签: prolog

假设您在prolog中加载了以下程序:

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

如何将以下规则添加到此程序中?

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

有人可以帮我写一下吗?

2 个答案:

答案 0 :(得分:2)

有两种选择。

  1. 将规则放入文件中,例如faster.pl,然后使用[faster].加载该文件
  2. 在提示符下发出[user].,然后输入规则并在SWI-Prolog中发出EOF( Ctrl + D )。

答案 1 :(得分:0)

Prolog database是动态的:可以使用assertz / 1和retract / 1来完成对规则库的修改。然后,添加到@larsman答案,你可以写

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

之后,从您的事实基础:

?- faster(X,Y).
X = ann,
Y = bob ;
X = ann,
Y = norm.