0

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

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

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

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

有人可以帮我写吗?

4

2 回答 2

2

有两种选择。

  1. 将规则放入文件中,例如faster.pl,然后加载该文件[faster].
  2. [user].在提示符下发出,然后键入规则并发出 EOF(在SWI-Prolog 中是Ctrl+ )。D
于 2012-05-20T13:03:30.143 回答
0

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

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

之后,根据您的事实基础:

?- faster(X,Y).
X = ann,
Y = bob ;
X = ann,
Y = norm.
于 2012-05-21T08:20:38.260 回答