Prolog程序,列出有关谁是谁的父母,谁是女性,谁是男性的事实

时间:2019-02-22 16:54:29

标签: list prolog

我无法理解如何在Prolog中启动该程序。

目标: 编写一个Prolog程序,列出有关谁是谁的父母,谁是女性,谁是男性的事实。基于这些事实,它还对定义母亲和定义父亲的规则进行编码。但是,事实中不能使用父亲和母亲功能。

示例:

?- mother(X, tommy)
X = jane
?- father(X, tommy)
X = john
?- mother(X, tammy)
X = beth
?- father(X, tammy)
X = mike

感谢您的帮助。我将如何去做?

1 个答案:

答案 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,因为这种方法非常相似。