0

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

%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 的答案,而不是它仅仅是真的?

4

1 回答 1

2

考虑一下数学:

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

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

至于查询,您可以使用这样的东西来获得这样的结果:

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

简而言之,如果您在查询中有一个未绑定的变量,它会尝试为该变量找到一个值,以便谓词成功。

于 2013-05-02T05:55:24.797 回答