【问题标题】:How to define sister predicate in Prolog如何在 Prolog 中定义姊妹谓词
【发布时间】:2014-04-25 21:09:09
【问题描述】:

“使用谓词parent(X,Y)male(X)female(X),写一个 定义 sister(X,Y) 的 Prolog 谓词。"

我正在尝试自学如何使用 Prolog 来搞笑,而我正在使用的课程将此作为作业之一,我什至不知道从哪里开始。

【问题讨论】:

  • 从我们这里得到答案对你帮助不大

标签: prolog


【解决方案1】:

假设 Sister(X,Y) 的意思是:X 是 Y 的姐妹(所以只有 X 必须是女性)。 假设 parent(X,Y) 的意思是:X 是 Y 的父母。

sister(X,Y) :-
    female(X),
    parent(Z,Y),
    parent(Z,X),
    X \= Y.

这是学习 Prolog 的绝佳在线资源:http://www.learnprolognow.org/

【讨论】:

  • 应该是女性(X)吗?阅读子句“X 是 Y 的姐妹”,它遵循相同形式的 parent(X,Y),意思是“X 是 Y 的父母”。
  • 我同意这个问题并不清楚,但一般的序言风格会暗示这是如何阅读这个命题。毕竟这是你解释 parent(X,Y) 的方式。