SICStus Prolog从sum / 3制定product / 3规则

时间:2013-05-02 05:52:39

标签: prolog

首先,这是一个家庭作业问题,所以请给我一个提示!

%Here is a rule that defines sum/3 that returns yes if Z is sum of X and Y
sum(X,Y,Z) :-
  Z is X + Y.
%How can I make product/3
product(X,Y,Z) :- % based on sum/3 above?

另外,如何在产品上写一个查询,使其返回X * Y的答案,而不仅仅是真的?

1 个答案:

答案 0 :(得分:2)

在数学中考虑一下:

x * 0 = 0
x * y = x + x * (y - 1)

这应该可以帮助你编写规则。

对于查询,您可以使用类似这样的结果:

?- product(5, 3, Result).
Result = 15 ?
yes

简而言之,如果查询中有未绑定的变量,它会尝试查找该变量的值,以使谓词成功。