【问题标题】:Defining facts within prolog rules在序言规则中定义事实
【发布时间】:2022-10-15 00:59:38
【问题描述】:

我正在尝试将以下语句翻译成序言:

“对于所有 X,如果 X 有一个孩子有一个姐姐,那么 X 就有两个孩子。”

我定义了以下规则:

has_two_children(X) :-
    parent(X,Y),
    sister(Y,_Z).

当我运行它时,我得到:

"procedure `sister(A,B)' does not exist
 Reachable from:
      has_two_children(A)"

我已经单独定义了一个父关系,但是我没有单独定义一个姐妹关系。但这让我很困惑。我期待它只是说假的。如果我感兴趣的人没有妹妹怎么办?在那种情况下,我无法为姐妹关系付出任何代价。我必须在规则之外定义姐妹关系吗?

【问题讨论】:

    标签: prolog swi-prolog logic-programming


    【解决方案1】:

    您需要定义姐妹关系才能使 has_two_children 规则起作用。

    【讨论】:

      猜你喜欢
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      相关资源
      最近更新 更多