我无法理解如何在Prolog中启动该程序。
目标: 编写一个Prolog程序,列出有关谁是谁的父母,谁是女性,谁是男性的事实。基于这些事实,它还对定义母亲和定义父亲的规则进行编码。但是,事实中不能使用父亲和母亲功能。
示例:
?- mother(X, tommy)
X = jane
?- father(X, tommy)
X = john
?- mother(X, tammy)
X = beth
?- father(X, tammy)
X = mike
感谢您的帮助。我将如何去做?
答案 0 :(得分:0)
这是序言中非常常见的练习,只是拥有一个快速的google,您就可以找到许多类似的解决方案!让我们将示例中提供的信息弹出到一组事实中。
parent(jane, tommy).
parent(beth, tammy).
parent(john, tommy).
parent(mike, tammy).
female(jane).
female(beth).
male(john).
male(mike).
母亲和父亲的功能不能在事实中使用。
所以我们必须找到解决方法。所以我们知道,如果您是母亲,则必须是女性,如果您是父亲,则必须是男性。
mother(X, Y):-
parent(X, Y),
female(X).
father(X, Y):-
parent(X, Y),
male(X).
因此,当您编写father(X, tammy).
时,它将返回X = mike
。
我建议您深入研究this github,因为这种方法非常相似。