【发布时间】:2014-04-30 14:06:55
【问题描述】:
您好,我是 Prolog 的新手,有基本问题。我想知道为什么这些 Prolog 谓词 daughter_of/2 和 son_of/2 不能像我希望的那样工作。例如,如果我问
16 ?- daughter_of(alice, X).
true.
(为什么是真的?我需要什么谓词才能得到 Victoria 和 Albert?)
谢谢。
male(albert).
male(edward).
female(alice).
female(victoria).
parents(edward, victoria, albert).
parents(alice, victoria, albert).
sister_of(X,Y):-
female(X),
parents(X,M,F),
parents(Y,M,F).
brother_of(X,Y):-
male(X),
parents(X,M,F),
parents(Y,M,F).
daughter_of(X,Y):-
female(X),
parents(X,M,F).
son_of(X,_Y):-
male(X),
parents(X,M,F).
【问题讨论】:
-
Y不会出现在daughter_of(X, Y)谓词子句的正文中。