【发布时间】: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